
小编今天就想全网搜索一个人的痕迹,看看能不能得到我想要的。
思路:
- python爬虫(爬取百度网站),输入 姓名
- 爬虫结果写入txt文件
- 得到的txt文件中,含有大量重名,或者其他一些脏数据
- ctrl+F,输入这个人的其他关键词 ,如:国网重庆。
- 定义到具体位置,复制位置前的网址,然后在浏览器打开,即可浏览到这个人的信息。
- 如果关键词搜索不到这个人,说名这个人还未在互联网上留下痕迹。
网址分析
复制网址

在这里你会看到,明明在浏览器URL栏看到的是中文,但是复制url,粘贴到记事本或代码里面,就会变成上面这样?)
在很多网站的URL中对一些get的参数或关键字进行编码,所以我们复制出来的时候,会出现问题。但复制过来的网址可以直接打开。本例子不用管这个。
那么,怎样才能自动爬取第一页以外的其他页面,打开第三页,网页地址如下,分析发现和第一页区别在于:第一页最后pn=10,第三页pn=20
我们可以想到自动获取多个网页的方法,可以for循环实现,每次循环后,pn+10
审查元素 发现内容区 和单个内容区见图

代码
python
不解释代码
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)

结果文件夹
我知道这个人的其中一个关键词:国网重庆
ctrl+F 查找 。即可定位到具体位置。然后复制位置前面的网址即可查找到这个人。
这里就不文本分析这个人啦(毕竟这个人很重要。)
当然可以爬取其他人,自己修改下url 就是
作者:电气-余登武