Teste de software | Usando Python para capturar o conteúdo da página do Baidu News

Insira a descrição da imagem aqui

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 requestse beautifulsoupsã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 BeautifulSoupa biblioteca para analisar o conteúdo HTML, find_allencontrar todas "f-title"as tags com classe por meio do método e, em seguida, getobter 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", findencontramos o rótulo através do método e get_textobtemos 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.

Acho que você gosta

Origin blog.csdn.net/Tester_muller/article/details/132721181
Recomendado
Clasificación