Python爬虫--Ajax异步抓取腾讯视频评论




import requests
import json
import time
 
# 请求头部信息,模拟浏览器访问
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'X-Requested-With': 'XMLHttpRequest',
}
 
# 视频ID
video_id = 'f8c487c05f613c43b9b5f148f36b8744'
 
# 初始化session,保持会话
session = requests.Session()
 
# 分页参数
page = 1
page_size = 20
 
# 存储评论的列表
comments = []
 
# 循环抓取评论,直到没有更多评论
while True:
    # 构建Ajax请求的URL
    url = f'https://video.coral.qq.com/varticle/935582928/comment/v2?video_id={video_id}&tid=0&pid=0&source=1&comment_id=0&score=0&size={page_size}&cursor=&order=0&platform=11&is_jsonp=false&callback=_varticle935582928commentv2'
    
    # 发送请求
    response = session.get(url, headers=headers)
    
    # 解析JSON数据
    data = json.loads(response.text.lstrip('_varticle935582928commentv2(').rstrip(');'))
    
    # 检查是否有新的评论数据
    if data['data']['cursor']['has_next']:
        # 更新分页参数
        cursor = data['data']['cursor']['next']
        page += 1
    else:
        # 没有更多评论,退出循环
        break
    
    # 将评论内容存储到列表中
    comments.extend([comment['content'] for comment in data['data']['comments']])
    
    # 防止被限流,设置每次请求间隔
    time.sleep(2)
 
# 打印抓取到的评论内容
for comment in comments:
    print(comment)

这段代码使用了requests库来模拟发送HTTP请求,并使用json库来解析JSON响应。通过循环抓取腾讯视频的评论,直至没有更多评论为止。每次请求都设置了合适的headers,以模拟浏览器访问,并且在每次请求之间有2秒的间隔,以防止触发防爬机制。最后,打印出抓取的评论内容。

最后修改于:2024年08月21日 15:01

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日