最近几天在问答区发现了有小伙伴要求爬取某小破站的私信内容;我写了两种方式获取的代码,大家在阅读完本篇文章后,可以尝试爬取csdn上的私信内容,道理都一样;希望大家仔细阅读本文章,相信你会收益颇深!!!
一.错误示例
1.错误代码:
import requests
url="https://api.vc.bilibili.com/session_svr/v1/session_svr/get_sessions?session_type=1&group_fold=1&unfollow_fold=0&sort_rule=2&build=0&mobi_app=web"
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36",
}
resp=requests.get(url=url,headers=headers)
print(resp.text)
2.失败结果:
3.原因分析:
出现这种结果是因为头参数没有设置cookie,故解决办法即加上cookie即可
4.获取cookie:
首先登录小破站,其次使用f12打开抓包工具,然后任意打开一个:
二.获取私信
1.思路分析:这里以我的登陆后为例进行分析
首先进入消息页
其次F12开发者工具进行抓包分析:
这里在查找到想要获取的数据时,就可以使用键值对应关系来获得想要的私信内容,因为返回的内容是json格式,由下图也可以知道:
2.代码展示:
注:代码种基本上细节都解释了,如果不懂,在评论区留言,我看到就会及时回复。
import requests
url="https://api.vc.bilibili.com/session_svr/v1/session_svr/get_sessions?session_type=1&group_fold=1&unfollow_fold=0&sort_rule=2&build=0&mobi_app=web"
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36",
"cookie":"你们自己获取的cookie粘贴到这就可以"
}
resp=requests.get(url=url,headers=headers)
text=resp.json()["data"]["session_list"]
# text=resp.json()["data"]["session_list"][1] 定位数据测试代码
# print(text)
lenth=len(text) #获取私信数量
####获取最后一条私信内容####
for i in range(0,lenth):
message=text[i]["last_msg"]["content"]
print(message)
##################
3.成果展示:
小伙伴们赶紧去试试吧,相信在阅读完本篇文章后,大家可以尝试去爬取csdn上的私信,后续也将出相关文章帮助大家学习,麻烦动动你的小手给个一键三连吧!!!!