「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战」
经过前两天对爬虫基础的学习,今天来小试牛刀一下。爬一下网易云的评论。
1.定位位置目标
先找一首我最喜欢的歌《黄金时代》,但是没有原唱的,网易云真的是啥歌原唱都没有,翻唱一大堆!!
可以看出所有评论都是包裹在id为id="auto-id-0flvTEG8zLVkFZST"的
标签中。不管它,现将网页下载下来看看。
2.下载网页
先把网页下载下来,然后用BeautifulSoup提取评论内容即可。
import requests
def get_url(url):
headers = {'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1'}
res = requests.get(url,headers = headers)
return res
def main():
url = input("请输入链接地址:")
res = get_url(url)
with open("res.txt","w",encoding = 'utf-8') as file:
file.write(res.text)
if __name__ == "__main__":
main()
输出的结果如下,需要自己输入相关歌曲的网页:
搜一下相关的评论,搜不到!说明评论不在这个文件中!那就说明,评论在别的文件中!
3.设置速度,找到目标文件
网速太快,刷一声,就加载了整个网页。
我们点开network,刷新一下,就可以发现很多源文件,它们就是组成整个网页的一部分:
我们要从这一堆文件里面找到藏有评论的文件;很显然,我们可以逐个文件翻查,但这方法有点麻烦。这里我们可以让浏览器慢点加载网页,当发现目标时,让时间停下来。
另外标签的顺序如下:
data = soup.select('#main > div > div.mtop.firstMod.clearfix > div.centerBox > ul.newsList > li > a')
翻车了,浏览器不可以!晚上回去更新下chrome!
评论是文档,我们可以直接查看XHR和DOC类型的文件。同时,下载目标文件时,我们会发现该文件时一个POST文件,记得我们前面说过POST文件需要什么吗?我们需要给服务器提交一些指定的数据,才能拿到我们想要的东西。这个我明天再更新出来!