通过分析Ajax请求来获取第一次加载出来的评论,并返回JSON格式的数据,从中提取出想要的数据。
此代码为学习笔记,有错误之处请指正。
步骤:
1、开发者工具分析Ajax
通过开发者工具来获取Ajxa请求的URL,获取方式很简单,可参考往期文章。
2、构造请求头headers
从第一步中获取referer、cookie和x-requested-with即可。还有最终要的URL,这个URL只是一次请求,只能获取到一部分数据,想获取后续数据还要通过分析URL的规律来改写代码,或者通过自动化软件获取。
import requests
import json
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0',
'referer': 'https://weibo.com/u/1300419694',
'cookie': 'SINAGLOBAL=7413278722271.905.1643445829989; UOR=www.baidu.com,weibo.com,'
'www.baidu.com; SUB=_2A25LWZSHDeRhGeFL6VcS9i_EzzSIHXVoFqhPrDV8PUNbmtANLRPbkW9NQlxWHpzak7C7fdNNomK4op3LAoKdCn0c;'
' ALF=02_1720021463; _s_tentry=www.weibo.com; Apache=3514412365734.3853.1717859822254; '
'XSRF-TOKEN=BEm4cdyIO_CqOs37swlWran2; ULV=1717859822414:4:3:3:3514412365734.3853.1717859822254:1717508606108;'
' WBPSESS=QmYFnlrfNMIvQXboRRQSLZG4JH3GsdNQmjAqkGaqH0Ax7j1UHH7mBDx4c8rLWgwnh6HzjMbKKMfw0450--'
'J64K_dcaTCkxvQqkw3NJlGFw6CBXFWSs5H7T_d4FYqbwV_2BEChpZd8sf01Xficu_1ag==',
'x-requested-with': 'XMLHttpRequest',
}
url = 'https://weibo.com/ajax/statuses/buildComments?is_reload=1&id=5042224733618401&is_show_bulletin=2&is_mix=0&count=1&uid=1300419694&fetch_level=&locale=zh-CN'
3、数据请求
response = requests.get(url, headers=headers)
if response.status_code == 200:
data = response.json()
4、数据分析
recommenes = data['data']
for recommen in recommenes:
print(recommen['text'])