七月的现男友,可?
这个男人如此优秀,收割了一大批少男少女的心,为了快速了解这个男人,我耗尽心血从入门到入狱地学爬虫,只为了证明李现分现存在的价值。
首先,打开李现的百度本科首页,鼠标空白处点击右键查看源码
通过对源码进行分析,获取现哥资料介绍的主要源码
经过查看,发现李现资料介绍集中在
`<div class="para" label-module="para">
利用pyquery可快进行匹配,也可以通过正则,BeautifulSoup进行匹配,但个人感觉pyquery是最容易的,可能是因为菜吧!```
话不多说,上代码
import json
import requests
import time
from pyquery import PyQuery as pq
from requests.exceptions import RequestException
url='https://baike.baidu.com/item/%E6%9D%8E%E7%8E%B0/5870690?fr=aladdin'
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.37'
}#请求头
response=requests.get(url,headers=headers)#发送请求获取网页
doc=pq(response.text)#对获取网页进行初始化
div=doc('.para.para')#查找所有class=para,label-module="para
print(div)
效果图如下:
嗯。作为一个细节控,你会发现爬出来的信息有很多索引号和空格,如何消除?
调用remove()方法可以移除节点。
索引号和空格对应网页的节点分别是<sup>
节点和class="sup-anchor"的<a>
节点
操作如下:
i.find('sup').remove()#消除索引号
i.find('.sup-anchor').remove()#消除空格
看一下效果图是不是感觉心情舒畅!
最后一步,将爬取下来的资料保存到text文本中
f=open('lx2.txt','w')#以写入的形式创建文件
完整代码如下:
import json
import requests
import time
from pyquery import PyQuery as pq
from requests.exceptions import RequestException
url='https://baike.baidu.com/item/%E6%9D%8E%E7%8E%B0/5870690?fr=aladdin'
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.37'
}#请求头
response=requests.get(url,headers=headers)#发送请求获取网页
doc=pq(response.text)#对获取网页进行初始化
div=doc('.para.para').items()#查找所有class=para,label-module="para
#print(div)
f=open('lx2.txt','w')#以写入的形式创建文件
for i in div:
i.find('sup').remove()#消除索引号
i.find('.sup-anchor').remove()#消除空格
a=i.text()
print(a)
f.write(a)
f.close()
print('True')
最后,小伙伴们在.py文件目录下便能查找到‘lx2.txt’文件。
双击打开。
路过顺便点个赞,让我瞧瞧!