Hoje, quero pesquisar em toda a rede os vestígios de uma pessoa para ver se consigo o que desejo.
Ideias:
- rastreador python (rastreando o site do Baidu), insira o nome
- Os resultados do rastreador são gravados em um arquivo txt
- O arquivo txt resultante contém muitos nomes duplicados ou alguns outros dados sujos
- ctrl + F, insira outras palavras-chave dessa pessoa, como: State Grid Chongqing.
- Defina para um local específico, copie o URL antes do local e abra-o no navegador para navegar até as informações da pessoa.
- Se a pessoa não pode ser procurada por palavras-chave, a pessoa nomeada pelo nome não deixou vestígios na Internet.
Análise de URL
Copiar URL
Aqui você verá que o que você vê na barra de URL do navegador é chinês, mas se você copiar o url e colá-lo em um bloco de notas ou código, ficará parecido com o acima? )
Alguns parâmetros get ou palavras-chave são codificados nas URLs de muitos sites, portanto, quando os copiarmos, ocorrerão problemas. Mas o URL copiado pode ser aberto diretamente. Não se preocupe com isso neste exemplo.
Então, como podemos rastrear automaticamente outras páginas além da primeira página, abrir a terceira página, o endereço da página da web é o seguinte, a análise descobriu que a diferença da primeira página é: a primeira página último pn = 10, o terceiro página pn = 20
, podemos pensar em O método de obtenção automática de várias páginas da web pode ser implementado em um loop for. Após cada loop, pn + 10
Examinando os elementos encontrados, a área de conteúdo e a área de conteúdo única são mostradas na figura
O código
python
não interpreta o código
from bs4 import BeautifulSoup
import numpy as np
import requests
from requests.exceptions import RequestException
import pandas as pd
import re
#读取网页
def craw(url,page):
try:
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36"}
html1 = requests.request("GET", url, headers=headers,timeout=10, verify=False)
html1.encoding ='utf-8' # 加编码,重要!转换为字符串编码,read()得到的是byte格式的
html=html1.text
return html
except RequestException:#其他问题
print('读取error')
return None
#解析网页并保存数据到表格
def pase_page(url,page):
html=craw(url,page)
html=str(html)
if len(html)>10:
soup = BeautifulSoup(html, 'lxml')
shangping=soup.select('#content_left .result.c-container.new-pmd')#所有内容div
for li in shangping:#遍历每一个内容
" 网址"
website=str(li.select('.t'))
web=str(re.findall('href=(.* )target',website))
" 内容标题"
title=str(re.findall('target(.*)</a>',website))
title=re.sub('[_blank,=,em,<,,">]','',title)#删除一些奇怪字符
" 内容"
content=str(li.select('.c-abstract'))
content=re.sub('[divclasscabstractem,em,<,=,"-",>,-,/]','',content)#剔除一些奇怪的字符
#content=remove_punctuation(content)
#content=content.apply(remove_punctuation)
" 写入txt"
with open('百度搜索.txt','a',encoding='utf-8')as c:
c.write(web+'\n')
c.write(title+'\n')
c.write(content+'\n')
for i in range(10,650,10):#遍历网页10,。。。。。#查看末页网址,发现最后pn=650
print(i)
url='https://www.baidu.com/s?wd=%E4%BD%99%E7%99%BB%E6%AD%A6&pn='+str(i)+'&oq=%E4%BD%99%E7%99%BB%E6%AD%A6&tn=56080572_3_hao_pg&ie=utf-8&usm=1&rsv_idx=2&rsv_pq=ffcc5d4d00001b62&rsv_t=49ac9CnXhelNWIZNsv%2B236pf8b0c4gpk9tfUY%2BXO5jIYkgpRGSEri7Kz6r%2Byy%2FQz9qfrtUnb25E'
#url='https://www.baidu.com/s?wd=%E4%BD%99%E7%99%BB%E6%AD%A6&pn=20&oq=%E4%BD%99%E7%99%BB%E6%AD%A6&tn=56080572_3_hao_pg&ie=utf-8&usm=1&rsv_idx=2&rsv_pq=ffcc5d4d00001b62&rsv_t=49ac9CnXhelNWIZNsv%2B236pf8b0c4gpk9tfUY%2BXO5jIYkgpRGSEri7Kz6r%2Byy%2FQz9qfrtUnb25E'
pase_page(url,i)
Pasta de resultados
Eu conheço uma das palavras-chave dessa pessoa: State Grid Chongqing
ctrl + F search. Você pode localizar o local específico. Em seguida, copie o URL na frente do local para encontrar essa pessoa.
Não vou analisar o texto dessa pessoa aqui (afinal, essa pessoa é importante).
Claro, você pode rastrear outras pessoas e modificar o url por conta própria.
Autor: Elétrico - Yu Dengwu