Introdução
Como engenheiros técnicos, podemos não ter tempo para navegar pelas notícias quentes durante nosso trabalho intenso, mas nós, que entendemos de tecnologia, não precisamos visitar o site para ver os principais eventos que estão acontecendo agora. Podemos usar a tecnologia de rastreador da Web para obter as informações mais recentes e notícias mais quentes. Notícias, este artigo apresentará como usar Python para rastrear o conteúdo da página do Baidu News.
Preparação ambiental
As bibliotecas que usaremos são todas bibliotecas comumente usadas requests
e beautifulsoup
são as bibliotecas que usamos desta vez. Os comandos de instalação são os seguintes:
pip install requests beautifulsoup4
buscar o conteúdo da página
Primeiro, usamos a biblioteca de solicitações para enviar uma solicitação HTTP e obter o conteúdo da página web. O código de exemplo é o seguinte:
import requests
url = 'http://news.baidu.com/'
response = requests.get(url)
html = response.text
print(html)
No código acima, usamos a biblioteca de solicitações para enviar uma solicitação GET e obter o conteúdo HTML da página web por meio do atributo response.text.
A seguir, podemos usar a biblioteca BeautifulSoup para analisar o conteúdo HTML obtido e extrair as informações necessárias. O código de exemplo é o seguinte:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
news_list = soup.find_all('a', class_='f-title')
for news in news_list:
print(news.get('href'))
print(news.get_text())
No código acima, usamos BeautifulSoup
a biblioteca para analisar o conteúdo HTML, find_all
encontrar todas "f-title"
as tags com classe por meio do método e, em seguida, get
obter o link e o título por meio do método.
Analise o conteúdo das notícias
Na etapa anterior obtivemos o link e o título da notícia. A seguir, precisamos analisar melhor o conteúdo das notícias.
Primeiro, podemos usar a biblioteca de solicitações mencionada anteriormente para enviar uma solicitação HTTP para o link da notícia e obter o HTML dos detalhes da notícia. O código de exemplo é o seguinte:
news_url = 'http://news.baidu.com/some_news_url'
news_response = requests.get(news_url)
news_html = news_response.text
print(news_html)
Então, podemos usar a biblioteca BeautifulSoup para analisar o conteúdo HTML das notícias e extrair o conteúdo do texto das notícias. O código de exemplo é o seguinte:
news_soup = BeautifulSoup(news_html, 'html.parser')
news_content = news_soup.find('div', class_='news-content')
print(news_content.get_text())
No código acima, assumimos que o atributo de classe do rótulo onde o conteúdo da notícia está localizado é "news-content", find
encontramos o rótulo através do método e get_text
obtemos o conteúdo do texto no rótulo através do método.
Armazenamento e processamento de dados
Nas duas primeiras etapas obtivemos o link, título e conteúdo da notícia. Em seguida, podemos salvar esses dados em um arquivo ou banco de dados local ou realizar processamento adicional de dados.
Uma maneira comum de salvar dados é gravá-los em um arquivo CSV. O código de exemplo é o seguinte:
import csv
data = [['链接', '标题', '内容'],
['http://news.baidu.com/some_news_url', '新闻标题1', '新闻内容1'],
['http://news.baidu.com/some_news_url', '新闻标题2', '新闻内容2'],
['http://news.baidu.com/some_news_url', '新闻标题3', '新闻内容3']]
with open('news.csv', 'w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerows(data)
No código acima, primeiro definimos uma lista bidimensional de dados, que contém o link, o título e o conteúdo da notícia. Em seguida, use a biblioteca csv para gravar os dados em um arquivo chamado news.csv.
Observação: ao rastrear dados de sites, certifique-se de cumprir as leis, regulamentos e políticas de uso de sites relevantes para evitar disputas legais.