腾讯视频热评爬虫(fiddler抓包js文件)

目标:爬取腾讯视频(三生三世十里桃花电视剧)热评

链接:https://v.qq.com/detail/j/j6cgzhtkuonf6te.html
在这里插入图片描述
在这里插入图片描述
因为f12源代码无法找到关于热评信息的代码,推测是存储在js文件,只能抓包获取

左键查看更多(触发网络请求)在这里插入图片描述
查找对应的js文件,解码并对比热评
在这里插入图片描述

完全一致,开始研究网页规律,并校验
发现网页的reqnum字段的值是评论个数
增大这个值相当于按查看更多
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开始写代码

  1. 构造用户代理池爬取网页,根据热评个数reqnum构造网址
  2. 网页源代码中abstract对应热评,title对应热评标题
  3. 采用正则表达式提取并打印
  4. 最后加上异常处理

效果图
在这里插入图片描述
源代码

import urllib.request
import re

num="20"
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0",
        "Content-Type":"application/javascript",
         }
opener=urllib.request.build_opener()
headall=[]
for key,value in headers.items():
    item=(key,value)
    headall.append(item)
opener.addheaders=headall
urllib.request.install_opener(opener)
for j in range(0,100):
    #爬取当前评论页面
    print("第"+str(j)+"页")
    #thisurl="https://video.coral.qq.com/filmreviewr/c/upcomment/"+vid+"?commentid="+cid+"&reqnum="+num
    thisurl="https://video.coral.qq.com/filmreviewr/c/upcomment/j6cgzhtkuonf6te?reqnum="+num+"&callback=jQuery11240697380881603586_1573822838280&_=1573822838281"
    data=urllib.request.urlopen(thisurl).read().decode("utf-8")
    titlepat='"title":"(.*?)","abstract":"'
    #commentpat='"content":"(.*?)"'
    commentpat='"abstract":"(.*?)...",'
    titleall=re.compile(titlepat,re.S).findall(data)
    commentall=re.compile(commentpat,re.S).findall(data)
    lastpat='"last":"(.*?)"'
    cid=re.compile(lastpat,re.S).findall(data)[0]
    for i in range(0,len(titleall)):
        try:
            print("评论标题是:"+eval('u"'+titleall[i]+'"'))
            print("评论内容是:"+eval('u"'+commentall[i]+'"'))
            print("------")
        except Exception as err:
            print(err)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值