鱼C论坛

 找回密码
 立即注册
查看: 172|回复: 6

[已解决][爬虫]b站接口问题

[复制链接]
发表于 2025-8-12 13:22:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 从零开始的修炼 于 2025-8-12 20:50 编辑

*****   问题已解决  变量名写错了   *****
打算用python调用b站私信的接口,参数全对,但是报csrf校验错误。大佬们 怎么解决(需要其他信息请回复)
接口信息:
请求 URL
https://api.vc.bilibili.com/web_ ... &wts=1754884846
查询字符串参数:
w_sender_uid:473690062
w_receiver_id:3546950181849575
w_dev_id:93513FA9-8E7C-40C3-8BCE-5DCD9E3CB634
w_rid:f53a90036f5dcf0b0af557155e438e14
wts:1754884846
表单数据:
msg[sender_uid]:473690062
msg[receiver_type]:1
msg[receiver_id]:3546950181849575
msg[msg_type]:1
msg[msg_status]:0
msg[content]:{"content":"1111"}
msg[new_face_version]:0
msg[canal_token]
msg[dev_id]:93513FA9-8E7C-40C3-8BCE-5DCD9E3CB634
msg[timestamp]:1754884846
from_firework:0
build:0
mobi_app:web
csrf:f140a7396431c7341069640e570a8975

程序结果:
PyDev console: starting.
Python 3.12.10 (tags/v3.12.10:0cc8128, Apr  8 2025, 12:21:36) [MSC v.1943 64 bit (AMD64)] on win32

{"code":-111,"message":"csrf 校验失败","ttl":1}

>>>url
'https://api.vc.bilibili.com/web_im/v1/web_im/send_msg?w_sender_uid=473690062&w_receiver_id=3546950181849575&w_dev_id=93513FA9-8E7C-40C3-8BCE-5DCD9E3CB634&w_rid=f53a90036f5dcf0b0af557155e438e14&wts=1754884846'

>>>data
{'msg[sender_uid]': 473690062, 'msg[receiver_type]': 1, 'msg[receiver_id]': 3546950181849575, 'msg[msg_type]': 1, 'msg[msg_status]': 0, 'msg[msg_content]': {'content': 'Python TEST'}, 'msg[new_face_version]': 0, 'msg[canal_token]': None, 'msg[dev_id]': '93513FA9-8E7C-40C3-8BCE-5DCD9E3CB634', 'msg[timestamp]': 1754884846, 'from_firework': 0, 'build': 0, 'mobi_app': 'web', 'csrf': 'f140a7396431c7341069640e570a8975'}
最佳答案
2025-8-12 17:31:14
从零开始的修炼 发表于 2025-8-12 17:29
这个目前确认是不变的,因为这个参数是cookie里的bili_jct值,我cookie是直接硬编码到headers里的。刚才 ...

你b站id是多少?我加你私信测一下
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-8-12 13:24:41 | 显示全部楼层
根据您提供的信息,CSRF校验失败通常是由于以下原因造成的:

### 主要问题分析:
1. CSRF Token不匹配:表单中的 csrf 参数必须与Cookies中的 bili_jct 值完全一致
2. 请求头缺失Cookies:未在请求中携带登录后的Cookies(尤其是 bili_jct
3. 表单数据结构错误:多个 msg 参数被覆盖,应采用元组列表格式

### 解决方案:
1. 确保从登录Cookies中获取正确的CSRF Token:

  1. import requests

  2. # 登录后获取的Cookies(示例)
  3. cookies = {
  4.     "SESSDATA": "你的SESSDATA",
  5.     "bili_jct": "f140a7396431c7341069640e570a8975"  # 必须与csrf参数一致
  6. }
复制代码


2. 修改表单数据结构(使用元组列表避免覆盖):

  1. data = [
  2.     ('msg', '473690062'),
  3.     ('msg', '1'),
  4.     ('msg', '3546950181849575'),
  5.     ('msg', '1'),
  6.     ('msg', '0'),
  7.     ('msg', '{"content":"Python TEST"}'),  # JSON需保持字符串格式
  8.     ('msg', '0'),
  9.     ('msg', ''),
  10.     ('msg', '93513FA9-8E7C-40C3-8BCE-5DCD9E3CB634'),
  11.     ('msg', '1754884846'),
  12.     ('from_firework', '0'),
  13.     ('build', '0'),
  14.     ('mobi_app', 'web'),
  15.     ('csrf', 'f140a7396431c7341069640e570a8975')  # 确保与cookies中的bili_jct相同
  16. ]
复制代码


3. 发送请求时携带Cookies和Headers:

  1. headers = {
  2.     "User-Agent": "Mozilla/5.0",
  3.     "Referer": "[url=https://www.bilibili.com"]https://www.bilibili.com"[/url]
  4. }

  5. response = requests.post(
  6.     url,
  7.     data=data,
  8.     cookies=cookies,  # 关键!必须携带cookies
  9.     headers=headers
  10. )
复制代码


### 重点检查项:
1. 确保Cookies中的 bili_jct 值 = 表单中的 csrf
2. 使用 requests.Session() 保持会话(推荐)
3. 动态参数 w_ridwts 可能需要实时生成

> 如果仍然失败,建议检查账号登录状态是否有效,并确保请求头包含完整的 User-AgentReferer

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-8-12 17:22:47 | 显示全部楼层
csrf参数都是动态生成的,你使用之前抓到的 csrf 参数肯定过不了校验
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-12 17:29:36 | 显示全部楼层
isdkz 发表于 2025-8-12 17:22
csrf参数都是动态生成的,你使用之前抓到的 csrf 参数肯定过不了校验

这个目前确认是不变的,因为这个参数是cookie里的bili_jct值,我cookie是直接硬编码到headers里的。刚才也确认了下 还是没变化
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-8-12 17:31:14 | 显示全部楼层    本楼为最佳答案   
从零开始的修炼 发表于 2025-8-12 17:29
这个目前确认是不变的,因为这个参数是cookie里的bili_jct值,我cookie是直接硬编码到headers里的。刚才 ...

你b站id是多少?我加你私信测一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-12 17:32:27 | 显示全部楼层
isdkz 发表于 2025-8-12 17:31
你b站id是多少?我加你私信测一下

Yukio_KK
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-12 18:41:50 | 显示全部楼层

1

本帖最后由 从零开始的修炼 于 2025-8-12 18:43 编辑

1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-1 11:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表