腾讯视频《银河补习班》的深度评论爬取实战

腾讯视频《银河补习班》的评论爬取实战

需要点击加载更多(如腾讯视频评论)看新内容的,或是不断下滑看到新内容的(如微博),这些都是异步请求。

1.进入要爬取某电影评论的界面,点击源代码,搜索发现没有评论的内容,内容是放到了js包里,需要使用fiddler工具抓包分析。
在这里插入图片描述

2.在fiddler中找到抓到的js包,查看textview内容,都类似于这种的"title":"\u6709\u610f\u4e49\u7684\u6559\u80b2\u6545\u4e8b",“abstract”:"\u5f88\u559c\u6b22\u8fd9\u90e8\u7535\u5f71\uff0c\u611f\u4eba\uf,一般而言,带有\u的是想找的内容。
在这里插入图片描述
不过我们可以验证一下,打开idle,在TextView找一句,前面加上u,进行解码,如下:

>>> u"\u6709\u610f\u4e49\u7684\u6559\u80b2\u6545\u4e8b"
'有意义的教育故事'

3.成功找到了,不过我们要用到url,所以进入fiddler,右击上面用的js包——>copy——>just url,粘贴到word。

4.clear Fiddler内容,进入某电影评论区点击加载更多,然后再重复一下以上的三个步骤。

5.此时得到两个url,可以对url的字段进行简单分析,得到url的最终格式。

https://video.coral.qq.com/filmreviewr/c/upcomment/[视频id]?&reqnum=[评论个数]&
 commentid=[评论id]

6.代码

#1.爬取单页评论
import re,urllib.request

#https://video.coral.qq.com/filmreviewr/c/upcomment/[视频id]?&reqnum=[评论个数]& commentid=[评论id]

vid = 'p6xvg0ft471pcj8'
req = '30'
comid = '6585761624071037846'  
#构造当前评论网址
url = "https://video.coral.qq.com/filmreviewr/c/upcomment/"+vid+"?&reqnum="+req+"& commentid=+comid"
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0",
    "Content-Type":"application/javascript"
}

head = []
for i in headers.items():
    head.append(i)

opener = urllib.request.build_opener()
opener.addheaders = head
#将opener安装为全局
urllib.request.install_opener(opener)

#爬取评论
url = "https://video.coral.qq.com/filmreviewr/c/upcomment/"+vid+"?&reqnum="+req+"& commentid=+comid"
data = urllib.request.urlopen(url).read().decode("utf-8")
titlepat = '"title":"(.*?)"'
contentpat = '"abstract":"(.*?)"'
#lastpat = '"last":"(.*?)"'
titleall = re.compile(titlepat,re.S).findall(data)
contentall = re.compile(contentpat,re.S).findall(data)
#cid = re.compile(lastpat,re.S).findall(data)
#comid = cid

for i in range(0,len(titleall)-1):
    print(eval('u"'+titleall[i]+'"'))
    print(eval('u"'+contentall[i]+'"'))

7.利用BlueMC工具生成词云图
在这里插入图片描述

发布了43 篇原创文章 · 获赞 46 · 访问量 4501

猜你喜欢

转载自blog.csdn.net/S_123789/article/details/102154999
今日推荐