首页/ 填坑/ 文章详情

Python 进阶篇:爬取微博用户评论信息

解锁了Python的hello word! 成就,进阶到实战应用领域,先确立个小目标,尝试抓取一个网站的信息练手。新浪微博作为我国最大社交网站,有着太多让我们感兴趣的信息,对于萌新来说再适合不过的练习对象。

首先了解到新浪微博是个API式前后分离网站,页面上的信息全部通过异步请求API接口完成。这是个好消息,完全避免使用正则表达式过滤信息,降低我们获取信息的难度

如何获取API接口:

在Chrome浏览器,按F12进入调式模式。选择Network标签,再选择XHR标签,重新刷新页面,查看到所有触发的接口地址。

Python通过Requests模块可以模拟请求接口,获取想要的信息。举个例子:爬取微博用户评论信息。

PYimport requests

url = 'https://m.weibo.cn/comments/hotflow?id=4608227142276365&mid=4608227142276365&max_id_type=0'
headers = {'User-Agent': "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36"}
html = requests.get(url,headers = headers)

print json.loads(html.text)

看到成功获取数据后,不要太过兴奋,新浪微博这类老牌网站,目前只是给了小甜头而已。你想获取后续数据,需要用户登陆信息,产生Cookies值,Requests才能继续获取数据

如何获取Cookies值:

- 访问 chrome://flags/#site-isolation-trial-opt-out
- 修改 Disable site isolation 选项将 Default 改成 Disabled
- 点击 Relaunch 按钮,重启浏览器
- 回到 XHR 标签,点击的接口,查看 header 信息
- 在 Response Headers 选项卡上,会多出 cookie 的信息

PYimport requests

url = 'https://m.weibo.cn/comments/hotflow?id=4608227142276365&mid=4608227142276365&max_id=145309488653889&max_id_type=0'
headers = {'User-Agent': "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36"}
cookies = {'Cookie':'Response Headers的cookie值'}

html = requests.get(url,headers = headers,cookies = cookies)
result = json.loads(html.text)

※ 新浪微博的cookie有时间限制,cookie值失效会过期,请求自然会失败。

文章评论0 records

最新 最早

0

最新评论Latest comments

big2catbig2cat 08-27 16:11
然而没什么用,smartpss不兼容老录像机,就算能看回放,很多时间点在回放里也看不到
HentaiCatHentaiCat 2020-12-30 10:22
考科目二全程很紧张,考了三次才过,有次侧方入库直接pass,100分扣完,呜呜呜~
猫猫酱猫猫酱 2020-11-12 10:56
一入多肉深似海,说多都是泪
soulkunsoulkun 2020-11-05 15:54
IconFont的图标真的很好用!!!
无限链霉球菌无限链霉球菌 2020-11-03 11:41
药店,了解一下(`・ω・´)