Como usar o rastreador python para rastrear dados em apenas seis etapas!

É muito fácil rastrear dados com o rastreador python . Você só precisa dominar essas seis etapas e também não é complicado. Eu costumava pensar que engatinhar era difícil, mas assim que comecei , aprendi como rastejar em menos de uma hora.

Python sobe seis etapas

Etapa 1: Instale a biblioteca de solicitações e a biblioteca BeautifulSoup:

A escrita das duas bibliotecas no programa é assim:

 import requests
from bs4 import BeautifulSoup

Já que estou usando o pycharm para programação em python. Então falarei sobre como instalar essas duas bibliotecas no pycharm . Nas opções do arquivo da página principal , encontre Configurações. Saiba mais sobre o intérprete de projetos. Em seguida, na caixa selecionada, clique no sinal + no pacote de software para instalar o plug-in de consulta. Provavelmente é mais fácil começar com o hxd que possui um plug-in de compilador instalado . A situação específica é mostrada na figura abaixo.

Etapa 2: Obtenha os cabeçalhos e cookies exigidos pelo rastreador:

Eu escrevi um programa rastreador que rastreia as principais pesquisas do Weibo. Vamos usá-lo apenas como exemplo aqui. A obtenção de cabeçalhos e cookies é necessária para um programa rastreador , pois determina diretamente se o programa rastreador pode encontrar com precisão a localização da página da web para rastreamento.

Primeiro, entre na página de pesquisa do Weibo e pressione F12, e a parte de design da linguagem js da página da web aparecerá. Como mostrado abaixo. Encontre a seção Rede na página da web. Em seguida, pressione ctrl+R para atualizar a página. Se as informações do arquivo já estiverem lá, não há necessidade de atualizá-las. Claro, não há problema se você atualizá-las. Em seguida, navegamos na parte Nome, encontramos o arquivo que queremos rastrear, clicamos com o botão direito do mouse, selecionamos copiar e copiamos o URL da página web. Assim como a imagem abaixo.

Depois de copiar o URL, entramos em uma página da web. Converta comandos curl em código. Esta página da web pode gerar automaticamente cabeçalhos e cookies com base no URL que você copiou, conforme mostrado abaixo. Basta copiar o cabeçalho e os cookies gerados e colá-los no programa.

#爬虫头数据
cookies = {
    'SINAGLOBAL': '6797875236621.702.1603159218040',
    'SUB': '_2AkMXbqMSf8NxqwJRmfkTzmnhboh1ygvEieKhMlLJJRMxHRl-yT9jqmg8tRB6PO6N_Rc_2FhPeZF2iThYO9DfkLUGpv4V',
    'SUBP': '0033WrSXqPxfM72-Ws9jqgMF55529P9D9Wh-nU-QNDs1Fu27p6nmwwiJ',
    '_s_tentry': 'www.baidu.com',
    'UOR': 'www.hfut.edu.cn,widget.weibo.com,www.baidu.com',
    'Apache': '7782025452543.054.1635925669528',
    'ULV': '1635925669554:15:1:1:7782025452543.054.1635925669528:1627316870256',
}
headers = {
    'Connection': 'keep-alive',
    'Cache-Control': 'max-age=0',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.6241 SLBChan/25',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'Sec-Fetch-Site': 'cross-site',
    'Sec-Fetch-Mode': 'navigate',
    'Sec-Fetch-User': '?1',
    'Sec-Fetch-Dest': 'document',
    'Accept-Language': 'zh-CN,zh;q=0.9',
}
params = (
    ('cate', 'realtimehot'),
)

Copie-o para o programa assim. Este é o cabeçalho da solicitação para pesquisas importantes no Weibo.

Etapa 3: Obtenha a página da web:

Depois de obtermos o cabeçalho e o cookie, podemos copiá-los para o nosso programa. Depois disso, use request request para obter a página da web.

#获取网页
response = requests.get('https://s.weibo.com/top/summary', headers=headers, params=params, cookies=cookies)

Etapa 4: analise a página da web :

Neste momento, precisamos retornar à página web. Pressione também F12 e encontre a seção Elementos da página da web. Use a pequena caixa com uma seta no canto superior esquerdo, conforme mostrado abaixo, e clique no conteúdo da página web. Neste momento, a página web exibirá automaticamente o código correspondente à parte da página web que você obteve à direita .

Conforme mostrado na imagem acima, depois de encontrarmos o código da página da web da parte da página que queremos rastrear , colocamos o mouse sobre o código, clicamos com o botão direito e copiamos para a parte do seletor. Conforme mostrado na imagem acima.

Passo 5: Analise as informações obtidas e simplifique o endereço:

Na verdade, o seletor que acabamos de copiar equivale ao endereço armazenado na parte correspondente da página web. Como o que precisamos é de um tipo de informação na página web, precisamos analisar e extrair o endereço obtido. Claro, não é impossível usar apenas esse endereço, mas você só pode obter aquela parte do conteúdo da página da web selecionada.

#pl_top_realtimehot > table > tbody > tr:nth-child(1) > td.td-02 > a
#pl_top_realtimehot > table > tbody > tr:nth-child(2) > td.td-02 > a
#pl_top_realtimehot > table > tbody > tr:nth-child(9) > td.td-02 > a

Estes são os três endereços que obtive. Pode-se constatar que os três endereços têm muitas semelhanças. A única diferença é a parte tr. Como tr é uma tag de página da web, a parte seguinte é sua parte suplementar, que é o seletor de subcategoria. Pode-se inferir que este tipo de informação está armazenada em uma subclasse de tr. Se extrairmos diretamente a informação de tr , podemos obter todas as informações correspondentes a esta parte. Portanto, o endereço refinado é:

#pl_top_realtimehot > table > tbody > tr > td.td-02 > a

Este processo provavelmente será melhor tratado por hxd que tem um certo conhecimento de linguagens do tipo js. Mas não importa se você não tem base em linguagens do tipo js. O passo principal é manter as mesmas partes. Experimente aos poucos e você sempre acertará.

Etapa 6: rastrear conteúdo e limpar dados

Após a conclusão desta etapa, podemos rastrear os dados diretamente. Use um rótulo para armazenar o endereço extraído acima. A tag puxará o conteúdo da web que queremos obter.

#爬取内容
content="#pl_top_realtimehot > table > tbody > tr > td.td-02 > a"

Depois disso, precisamos de sopa e texto para filtrar informações desnecessárias, como a linguagem js, para eliminar a interferência dessa linguagem na leitura do público da informação. Dessa forma, rastreamos as informações com sucesso.

fo = open("./微博热搜.txt",'a',encoding="utf-8")
a=soup.select(content)
for i in range(0,len(a)):
    a[i] = a[i].text
    fo.write(a[i]+'\n')
fo.close()

Armazenei os dados em uma pasta, portanto haverá operações de gravação causadas por wirte . Cabe ao leitor decidir onde deseja salvar os dados ou como deseja utilizá-los.

Exemplos de código para rastrear pesquisas importantes no Weibo e exibir resultados:

import os
import requests
from bs4 import BeautifulSoup
#爬虫头数据
cookies = {
    'SINAGLOBAL': '6797875236621.702.1603159218040',
    'SUB': '_2AkMXbqMSf8NxqwJRmfkTzmnhboh1ygvEieKhMlLJJRMxHRl-yT9jqmg8tRB6PO6N_Rc_2FhPeZF2iThYO9DfkLUGpv4V',
    'SUBP': '0033WrSXqPxfM72-Ws9jqgMF55529P9D9Wh-nU-QNDs1Fu27p6nmwwiJ',
    '_s_tentry': 'www.baidu.com',
    'UOR': 'www.hfut.edu.cn,widget.weibo.com,www.baidu.com',
    'Apache': '7782025452543.054.1635925669528',
    'ULV': '1635925669554:15:1:1:7782025452543.054.1635925669528:1627316870256',
}
headers = {
    'Connection': 'keep-alive',
    'Cache-Control': 'max-age=0',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.6241 SLBChan/25',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'Sec-Fetch-Site': 'cross-site',
    'Sec-Fetch-Mode': 'navigate',
    'Sec-Fetch-User': '?1',
    'Sec-Fetch-Dest': 'document',
    'Accept-Language': 'zh-CN,zh;q=0.9',
}
params = (
    ('cate', 'realtimehot'),
)
#数据存储
fo = open("./微博热搜.txt",'a',encoding="utf-8")
#获取网页
response = requests.get('https://s.weibo.com/top/summary', headers=headers, params=params, cookies=cookies)
#解析网页
response.encoding='utf-8'
soup = BeautifulSoup(response.text, 'html.parser')
#爬取内容
content="#pl_top_realtimehot > table > tbody > tr > td.td-02 > a"
#清洗数据
a=soup.select(content)
for i in range(0,len(a)):
    a[i] = a[i].text
    fo.write(a[i]+'\n')
fo.close()

Acho que você gosta

Origin blog.csdn.net/Everly_/article/details/133138470
Recomendado
Clasificación