一、前提条件

安装了Fiddler了(用于抓包分析)

谷歌或火狐浏览器

如果是谷歌浏览器,还需要给谷歌浏览器安装一个SwitchyOmega插件,用于代理服务器

有Python的编译环境,一般选择Python3.0及以上

声明:本次爬取腾讯视频里 《最美公里》纪录片的评论。本次爬取使用的浏览器是谷歌浏览器

二、分析思路

1、分析评论页面

根据上图,我们可以知道:评论使用了Ajax异步刷新技术。这样就不能使用以前分析当前页面找出规律的手段了。因为展示的页面只有部分评论,还有大量的评论没有被刷新出来。

这时,我们应该想到使用抓包来分析评论页面刷新的规律。以后大部分爬虫,都会先使用抓包技术,分析出规律!

2、使用Fiddler进行抓包分析——得出评论网址规律

fiddler如何抓包,这个知识点,需要读者自行去学习,不在本博客讨论范围。

把上面两张图里面的内容对比一下,可以知道这个JS就是评论存放页面。(这需要大家一个一个找,一般Ajax都是在JS里面,所以这也找JS进行对比即可)

我们复制这个JS的url:右击 > copy > Just Url

大家可以重复操作几次,多找几个JS的url,从url得出规律。下图是我刷新了4次得到的JS的url:

根据上图,我们发现url不同的地方有两处:一是cursor=?;二是_=?。

我们很快就能发现 _=?的规律,它是从1576567187273加1。而cursor=?的规律看不出来。这个时候找到它的规律呢?

(1)百度一下,看前人有没有爬取过类型的网站,根据他们的规律和方法,去找出规律;

(2)羊毛出在羊身上。我们需要有的大胆想法——会不会这个cursor=?可以根据上一个JS页面得到呢?这只是很多大胆想法中的一个,我们就一个想法一个想法的试试。

我们就采用第二种方法,去js里面找。复制其中一个url为:

url = https://video.coral.qq.com/varticle/3242201702/comment/v2?callback=_varticle3242201702commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6460163812968870071&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1576567187273

去浏览器里面打开,在里面搜索一下此url的下一个url的cursor=?的值。我们发现一个惊喜!

如下:

一般情况下,我们还要多试几次,确定我们的想法是正确的。

至此,我们发现了评论的url之间的规律:

_=?从1576567187273加1

cursor=?的值存在上面一个JS中。

三、代码编写

import re

import random

import urllib.request

#构建用户代理

uapools=["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",

"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",

"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0",

]

#从用户代理池随机选取一个用户代理

def ua(uapools):

thisua=random.choice(uapools)

#print(thisua)

headers=("User-Agent",thisua)

opener=urllib.request.build_opener()

opener.addheaders=[headers]

#设置为全局变量

urllib.request.install_opener(opener)

#获取源码

def get_content(page,lastId):

url="https://video.coral.qq.com/varticle/3242201702/comment/v2?callback=_varticle3242201702commentv2&orinum=10&oriorder=o&pageflag=1&cursor="+lastId+"&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_="+str(page)

html=urllib.request.urlopen(url).read().decode("utf-8","ignore")

return html

#从源码中获取评论的数据

def get_comment(html):

pat='"content":"(.*?)"'

rst = re.compile(pat,re.S).findall(html)

return rst

#从源码中获取下一轮刷新页的ID

def get_lastId(html):

pat='"last":"(.*?)"'

lastId = re.compile(pat,re.S).findall(html)[0]

return lastId

def main():

ua(uapools)

#初始页面

page=1576567187274

#初始待刷新页面ID

lastId="6460393679757345760"

for i in range(1,6):

html = get_content(page,lastId)

#获取评论数据

commentlist=get_comment(html)

print("------第"+str(i)+"轮页面评论------")

for j in range(1,len(commentlist)):

print("第"+str(j)+"条评论:" +str(commentlist[j]))

#获取下一轮刷新页ID

lastId=get_lastId(html)

page += 1

main()

四、结果展示

总结

以上所述是小编给大家介绍的Python爬取腾讯视频评论,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对python博客网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

python实现qq登录腾讯视频_Python爬取腾讯视频评论的思路详解相关推荐

  1. 用python爬取网页数据并存入数据库中源代码_Python爬取51cto数据并存入MySQL方法详解...

    [] 实验环境 1.安装Python 3.7 2.安装requests, bs4,pymysql 模块 实验步骤1.安装环境及模块 可参考https://www.jb51.net/article/19 ...

  2. python 爬取搞笑视频_Python爬取知乎上搞笑视频,一顿爆笑送给大家

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:Huangwei AI 来源:Python与机器学习之路 PS:如有需 ...

  3. python b站 排行_Python 爬取B站 视频热度排行数据

    时间:2019-03-07 概述:抓取数据 爬虫 采集 Python 爬取bilibili站 视频热度排行视频数据,有文件为 bilibili.py,只需输入一个大模块名,如游戏模块名为'game', ...

  4. 从入门到入土:Python爬虫学习|实例练手|详细讲解|爬取腾讯招聘网|一步一步分析|异步加载|初级难度反扒处理|寻找消失的API来找工作吧

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  5. python爬携程景区评论_python爬取携程景点评论信息

    python爬取携程景点评论信息 今天要分析的网站是携程网,获取景点的用户评论,评论信息通过json返回API,页面是这个样子的 按下F12之后,F5刷新一下 具体需要URL Request的方式为P ...

  6. python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...

    python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...

  7. python爬取评论_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

  8. python爬取网易云音乐热评_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

  9. python爬取网易云评论最多的歌_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

最新文章

  1. LINUX 操作记录到syslog,并发送到syslog服务器上
  2. 神经网络和反向传播算法——反向传播算法本质上是随机梯度下降,链式求导法则而来的...
  3. 【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | oat_file_assistant.cc 中涉及的 oat 文件生成流程 )
  4. php sprintf 后面补0,PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
  5. asp.net程序的问题原来是IE造成的,改用firefox就没问题了!
  6. reviewboard安装实战
  7. 【520有奖征文】 老同学聚会,20年IT行业从业感悟
  8. 关于交流电路的谐振等问题
  9. (CVPR_2021) Center-based 3D Object Detection and Tracking
  10. vmware虚拟机共享文件夹设置(xp)
  11. 未知错误,可能由于拨号连接未创建成功
  12. godot引擎学习6
  13. 天下武功,唯创不破:Atlassian产品中文版蓄力以待
  14. Android中JNI开发之常见错误
  15. 关于自动化运维的那些事儿
  16. android 壁纸软件 宝宝,宝宝巴士桌面软件下载
  17. linux运维工程师毕业设计,论文写作:运维工程师毕业论文怎么写?
  18. 根据Email地址跳转到邮箱登录界面
  19. 技术写作的两种方向和方法
  20. 论文:lda2vev:Mixing Dirichlet Topic Models and Word Embeddings to Make lda2vec

热门文章

  1. 2.3 过去进行时+过去完成时
  2. databinding找不到符号
  3. EasyCVR通过GB28181协议注册到海康NCG平台返回400原因分析
  4. ubuntu18磁盘扩容(vmware或exsi)
  5. 百家号搬运电视剧技巧,视频搬运去重技巧
  6. 微信投票项目开发--ssm框架
  7. 拉格朗日乘子法、极大似然估计、EM算法
  8. 多重采样和超级采样哪个流畅_测试之前你需要做这些功课
  9. echarts 饼状图 扇面上显示 文字和百分比
  10. 数字媒体发布管理系统DMS(Digital Media System)