我需要帮助确定我使用网络爬虫提取的文本的首选格式。(完全初学者)

huangapple go评论67阅读模式
英文:

I need help on getting a preferred format for the text i pulled out with a webscraper. (Complete Beginner)

问题

Here is the translated code with the requested parts:

from bs4 import BeautifulSoup
import requests


def scraper(url):
    url = "https://www.folhape.com.br/economia/preco-da-gasolina-cai-apos-duas-semanas-de-alta-nos-postos-diz-anp/280763/"
    req = requests.get(url)
    soup = BeautifulSoup(req.content, "html.parser")
    title = soup.find("title")
    subtitle = soup.find("h2")
    text = soup.find("article", class_="grid_8 prefix_2 textoArea").text
    return (title.text, subtitle.text, text)


string1 = scraper("https://www.folhape.com.br/economia/preco-da-gasolina-cai-apos-duas-semanas-de-alta-nos-postos-diz-anp/280763/")
print(string1)

And here is the output from the same code with only return (text):

O preço da gasolina nos postos de combustíveis caiu nesta semana, de acordo com levantamento feito pela Agência Nacional de preços (ANP). O valor médio por litro passou de R$ 5,67 para R$ 5,63, recuo de 0,7% ou quatro centavos. É a primeira queda após duas semanas seguidas de avanço na bomba.
No início deste mês, a Petrobras reduziu o preço da gasolina nas refinarias: o valor médio por litro caiu para R$ 2,52, uma redução de cerca de R$ 0,14 ou 5,3%. Somente neste ano foram quatro reduções nas refinarias.
Já o preço do litro do diesel caiu pela 23ª semana consecutiva: foi de R$ 4,95 para R$ 4,94 . O litro do etanol também teve recuo nesta semana: passou de R$ 3,93 por litro para R$ 3,87.
Leia também• Inflação mensal na Argentina desacelera e atinge 6% em junho• "Inflação das férias" sobe quase o triplo da média e passa de 5%, com cinemas e lanches mais caros• Desenrola, programa de renegociação de dívida, começa na segunda. Veja guia preparado pelos bancos
Após a última redução anunciada no preço da gasolina pela Petrobras, o preço do petróleo no mercado internacional vem subindo. A cotação do Brent, referência internacional, desde o início deste mês subiu de US$ 74,90, chegou a mais de US$ 81 e hoje está em US$ 79,7.
Com isso, o preço vendido pela Petrobras no Brasil está menor em relação ao exterior. Dados da Abicom, que reúne os importadores, apontam que o litro vendido pela estatal está nesta sexta-feira 16% abaixo das cotações internacionais.
Reportar ErroVeja tambémConcursoBNDES fará concurso para níveis médio e superior com foco em diversidade e inclusãoEconomiaMercado prevê PIB de 2,24% este anoREFORMA TRIBUTÁRIARforma Tributária: "Quanto mais exceções tiverem, menos vai funcionar", diz HaddadNEGÓCIOSH&M anuncia planos para abrir lojas no Brasil em 2025BRASILAtividade econômica tem queda de 2% no mês de maio, aponta "prévia" do PIB

I've removed the HTML entities (") from the code and output to make it more readable. If you have any further questions or need assistance, please let me know.

英文:
from bs4 import BeautifulSoup
import requests


def scraper(url):
    url = "https://www.folhape.com.br/economia/preco-da-gasolina-cai-apos-duas-semanas-de-alta-nos-postos-diz-anp/280763/"
    req = requests.get(url)
    soup = BeautifulSoup(req.content, "html.parser")
    title = soup.find("title")
    subtitle = soup.find("h2")
    text = soup.find("article", class_="grid_8 prefix_2 textoArea").text
    return (title.text, subtitle.text, text)


string1 = scraper("https://www.folhape.com.br/economia/preco-da-gasolina-cai-apos-duas-semanas-de-alta-nos-postos-diz-anp/280763/")
print(string1)

This is the code I am running and this is the output

('Preço da gasolina cai após duas semanas de alta nos postos, diz ANP - Folha PE', 'Diesel tem queda pela 23ª semana consecutiva', '\nO preço da gasolina nos postos de combustíveis caiu nesta semana, de acordo com levantamento feito pela Agência Nacional de preços (ANP). O valor médio por litro passou de R$ 5,67 para R$ 5,63, recuo de 0,7% ou quatro centavos. É a primeira queda após duas semanas seguidas de avanço na bomba.\nNo início deste mês, a Petrobras reduziu o preço da gasolina nas refinarias: o valor médio por litro caiu para R$ 2,52, uma redução de cerca de R$ 0,14 ou 5,3%. Somente neste ano foram quatro reduções nas refinarias.\nJá o preço do litro do diesel caiu pela 23ª semana consecutiva: foi de R$ 4,95 para R$ 4,94 . O litro do etanol também teve recuo nesta semana: passou de R$ 3,93 por litro para R$ 3,87.\nLeia também• Inflação mensal na Argentina desacelera e atinge 6% em junho• "Inflação das férias" sobe quase o triplo da média e passa de 5%, com cinemas e lanches mais caros• Desenrola, programa de renegociação de dívida, começa na segunda. Veja guia preparado pelos bancos\nApós a última redução anunciada no preço da gasolina pela Petrobras, o preço do petróleo no mercado internacional vem subindo. A cotação do Brent, referência internacional, desde o início deste mês subiu de US$ 74,90, chegou a mais de US$ 81 e hoje está em US$ 79,7.\nCom isso, o preço vendido pela Petrobras no Brasil está menor em relação ao exterior. Dados da Abicom, que reúne os importadores, apontam que o litro vendido pela estatal está nesta sexta-feira 16% abaixo das cotações internacionais.\nReportar ErroVeja tambémConcursoBNDES fará concurso para níveis médio e superior com foco em diversidade e inclusãoEconomiaMercado prevê PIB de 2,24% este anoREFORMA TRIBUTÁRIAReforma Tributária: "Quanto mais exceções tiverem, menos vai funcionar", diz HaddadNEGÓCIOSH&M anuncia planos para abrir lojas no Brasil em 2025BRASILAtividade econômica tem queda de 2% no mês de maio, aponta "prévia" do PIB')

Now here is the output from the same code with only, return (text).

O preço da gasolina nos postos de combustíveis caiu nesta semana, de acordo com levantamento feito pela Agência Nacional de preços (ANP). O valor médio por litro passou de R$ 5,67 para R$ 5,63, recuo de 0,7% ou quatro centavos. É a primeira queda após duas semanas seguidas de avanço na bomba.
No início deste mês, a Petrobras reduziu o preço da gasolina nas refinarias: o valor médio por litro caiu para R$ 2,52, uma redução de cerca de R$ 0,14 ou 5,3%. Somente neste ano foram quatro reduções nas refinarias.
Já o preço do litro do diesel caiu pela 23ª semana consecutiva: foi de R$ 4,95 para R$ 4,94 . O litro do etanol também teve recuo nesta semana: passou de R$ 3,93 por litro para R$ 3,87.
Leia também• Inflação mensal na Argentina desacelera e atinge 6% em junho• "Inflação das férias" sobe quase o triplo da média e passa de 5%, com cinemas e lanches mais caros• Desenrola, programa de renegociação de dívida, começa na segunda. Veja guia preparado pelos bancos
Após a última redução anunciada no preço da gasolina pela Petrobras, o preço do petróleo no mercado internacional vem subindo. A cotação do Brent, referência internacional, desde o início deste mês subiu de US$ 74,90, chegou a mais de US$ 81 e hoje está em US$ 79,7.
Com isso, o preço vendido pela Petrobras no Brasil está menor em relação ao exterior. Dados da Abicom, que reúne os importadores, apontam que o litro vendido pela estatal está nesta sexta-feira 16% abaixo das cotações internacionais.
Reportar ErroVeja tambémConcursoBNDES fará concurso para níveis médio e superior com foco em diversidade e inclusãoEconomiaMercado prevê PIB de 2,24% este anoREFORMA TRIBUTÁRIAReforma Tributária: "Quanto mais exceções tiverem, menos vai funcionar", diz HaddadNEGÓCIOSH&M anuncia planos para abrir lojas no Brasil em 2025BRASILAtividade econômica tem queda de 2% no mês de maio, aponta "prévia" do PIB

so, no "\n" and random commas throughout. Can anynone help me with this?

well I tried to separate the texts like this return(title.text),(subtitle.text),(text) and also tried to isolate the text like this, return(title.text, subtitle.text),(text). Neither of these approaches worked.

答案1

得分: 1

你可以在响应文本中的任何"\n"出现的地方使用replace
像这样:

"test\ntest".replace('\n', ' ')

结果是:

"test test"
英文:

You could use replace in any occurance of "\n" in the response text.
Like this:

"test\ntest".replace('\n', ' ')

results in:

"test test"

答案2

得分: 0

def scraper(url):
    url = "https://www.folhape.com.br/economia/preco-da-gasolina-cai-apos-duas-semanas-de-alta-nos-postos-diz-anp/280763/"
    req = requests.get(url)
    soup = BeautifulSoup(req.content, "html.parser")
    title = soup.find("title").text
    subtitle = soup.find("h2").text
    text = soup.find("article", class_="grid_8 prefix_2 textoArea").text.strip()
    text = " ".join(text.split())  # 移除多余的空格字符
    text = text.replace(",", "")  # 移除逗号
    return title, subtitle, text

string1 = scraper("https://www.folhape.com.br/economia/preco-da-gasolina-cai-apos-duas-semanas-de-alta-nos-postos-diz-anp/280763/")
print(string1)
英文:
def scraper(url):
    url = "https://www.folhape.com.br/economia/preco-da-gasolina-cai-apos-duas-semanas-de-alta-nos-postos-diz-anp/280763/"
    req = requests.get(url)
    soup = BeautifulSoup(req.content, "html.parser")
    title = soup.find("title").text
    subtitle = soup.find("h2").text
    text = soup.find("article", class_="grid_8 prefix_2 textoArea").text.strip()
    text = " ".join(text.split())  # Remove extra whitespace characters
    text = text.replace(",", "")  # Remove commas
    return title, subtitle, text

string1 = scraper("https://www.folhape.com.br/economia/preco-da-gasolina-cai-apos-duas-semanas-de-alta-nos-postos-diz-anp/280763/")
print(string1)

huangapple
  • 本文由 发表于 2023年7月18日 00:09:56
  • 转载请务必保留本文链接:https://go.coder-hub.com/76706317.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定