一般看电影总会先翻下评论,以爱奇艺中电影为例,如图所示我们先来看下这个评论数据,打开开发者工具或者直接按住F12,下拉数据实现更显,查看评论数据包如图所示,或者直接在all中直接搜索评论数据,如图所示完整url如图所示
https://sns-comment.iqiyi.com/v3/comment/get_baseline_comments.action?agent_type=118&agent_version=9.11.5&authcookie=null&business_type=17&channel_id=1&content_id=5175273237810200&last_id=&need_vote=1&page_size=10&qyid=9bf30c577b1504d0a59d87c01ed1eba4&sort=TIMEDESC&tail_num=1&callback=jsonp_1670163241612_14024
向下滑动实现翻页,其中content_id是对应电影,不同电影content_id不同。last_id是翻页参数,第一页的last_id默认为空,第二页的last_id为第一页的response中的id(也就是上一页请求数据的响应的id),如图所示,那就好办了,直接加个循环就可以处理了,完整代码如下所示
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36'}
last_id = ''
num = 0
while True:
url = 'https://sns-comment.iqiyi.com/v3/comment/get_comments.action?agent_type=118&agent_version=9.11.5&authcookie=null&business_type=17&channel_id=1&content_id=5175273237810200&hot_size=0&last_id={}&page=&page_size=20&types=time'.format(last_id)
r = requests.get(url,headers=headers)
datas = r.json()['data']['comments']
# print(datas)
num += len(datas)
for i in datas:
print(i)
last_id = i['id']
代码执行结果如下所示
点击此处登录后即可评论