【Python3 爬虫】16_抓取腾讯视频评论内容

上一节我们已经知道如何使用Fiddler进行抓包分析,那么接下来我们开始完成一个简单的小例子

抓取腾讯视频的评论内容

首先我们打开腾讯视频的官网https://v.qq.com/

image

我们打开【电视剧】这一栏,找到一部比较精彩的电视剧爬取一下,例如:我们就爬取【下一站,别离】这部吧

我们找到这部电视剧的评论如下图:

 

image

我们看到上图标记部分【查看更多评论】

我们首先在Fiddelr中使用命令clear清除之前浏览的记录

image

输入命令直接回车即可

接着我们点击【查看更多评论】,此时再次看Fiddler,我们可以看到【JS】这个小图标

image

我们右键上图标记部分

第一次点击

接着【Copy】---【Just Url】

地址为:

https://video.coral.qq.com/varticle/2580302776/comment/v2?callback=_varticle2580302776commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6392930402023585386&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=9&_=1524713312689

我们将此地址放到浏览器查看效果如何?

image

现在我们还没发现什么规律,那我们再点击一次

第二次点击

地址为:https://video.coral.qq.com/varticle/2580302776/comment/v2?callback=_varticle2580302776commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6394261147223571180&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=9&_=1524713312690

浏览器显示

image

我们将上述2个地址放在word进行分析后,分析结果如下:

image

我们可以看到黄色标记部分没什么规律,最后红色标记是按1递增

那么我们验证下黄色标记部分是否是必须的呢?删除黄色部分放在浏览器执行,查看结果,有没有黄色部分结果一致,那么我们接下来开始代码了

import urllib.request
import re
import urllib.error
headers=("User_Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0")
#自定义opener
opener = urllib.request.build_opener()
opener.addheaders = [headers]
urllib.request.install_opener(opener)

cursor_id = '6394260346548095809'
v_id =1524402700840
url = "https://video.coral.qq.com/varticle/2580302776/comment/v2?callback=_varticle2580302776commentv2&orinum=10&oriorder=o&pageflag=1&cursor="+cursor_id+"&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=9&_="+str(v_id)
for i in range(0,10):
	content = urllib.request.urlopen(url).read().decode("utf-8")
	patnext = '"last":"(.*?)"'
	nextid = re.compile(patnext).findall(content)[0]
	patcomment = '"content":"(.*?)",'
	comment_content = re.compile(patcomment).findall(content)
	for j in range(1,len(comment_content)):
		print("-----第"+str(i)+str(j)+"条评论内容是:")
		#print(eval("u"+"\'"+comment_content[j]+"\'"))
		try:
			t1 = comment_content[j].encode('latin-1').decode('unicode_escape')
			print(t1)
		except Exception as e:
			print("***********该条评论含有有特殊字符************")
	url="https://video.coral.qq.com/varticle/2580302776/comment/v2?callback=_varticle2580302776commentv2&orinum=10&oriorder=o&pageflag=1&cursor="+nextid+"&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=9&_="+str(v_id+i)
posted @ 2018-04-26 12:37  OLIVER_QIN  阅读(1842)  评论(0编辑  收藏  举报