Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XHS可能又加固了访问规则,一定要加上 ?xsec_token=XXX 后缀,否则无法获取到笔记及图片内容,还请大佬能对应。 #186

Open
cheleo opened this issue Oct 23, 2024 · 14 comments
Labels
不会处理(wontfix) 不会处理的问题

Comments

@cheleo
Copy link

cheleo commented Oct 23, 2024

这两天发现 XHS可能又加固了访问规则,一定要加上 ?xsec_token=XXX 后缀,否则无法获取到笔记及图片内容。

如 main.py -u main.py -u https://www.xiaohongshu.com/explore/作品ID 已经无法访问,
必须是 main.py -u https://www.xiaohongshu.com/explore/作品ID?xsec_token=XXX

还望大佬能再出个版本,增加动态获取 xsec_token 的逻辑。
debug

@JoeanAmier JoeanAmier added the 不会处理(wontfix) 不会处理的问题 label Oct 23, 2024
@JoeanAmier
Copy link
Owner

属于小红书风控措施,不会考虑破解。

@zhuzhuss33
Copy link

我也研究一阵子了,没有办法仅从一个“note_id”已知信息,去获取到对应的xsec_token。有个绕路的方法,但是需要知道这篇笔记对应的用户id,从用户主页接口获取,找到对应inote_d。不然单篇笔记的采集只能从源头上规范,比如复制的时候必须带上这个xsec_token

@nixsorid
Copy link

要么每次采集单篇笔记时带上xsec_token
要么把https://www.xiaohongshu.com/explore/作品ID
改成https://www.xiaohongshu.com/explore/用户ID/作品ID,每次都带上用户ID

@huifeng-kooboo
Copy link

要么每次采集单篇笔记时带上xsec_token 要么把https://www.xiaohongshu.com/explore/作品ID 改成https://www.xiaohongshu.com/explore/用户ID/作品ID,每次都带上用户ID

如何获取到这个作品的用户id呢

@cornerpanorama
Copy link

要么每次采集单篇笔记时带上xsec_token 要么把https://www.xiaohongshu.com/explore/作品ID 改成https://www.xiaohongshu.com/explore/用户ID/作品ID,每次都带上用户ID
现在这种方式也不行了

@souldjl
Copy link

souldjl commented Nov 4, 2024

那现在还有新的方案嘛 ,这个token 咋生成的呢

要么每次采集单篇笔记时带上xsec_token 要么把https://www.xiaohongshu.com/explore/作品ID 改成https://www.xiaohongshu.com/explore/用户ID/作品ID,每次都带上用户ID
现在这种方式也不行了

@souldjl
Copy link

souldjl commented Nov 4, 2024

我也研究一阵子了,没有办法仅从一个“note_id”已知信息,去获取到对应的xsec_token。有个绕路的方法,但是需要知道这篇笔记对应的用户id,从用户主页接口获取,找到对应inote_d。不然单篇笔记的采集只能从源头上规范,比如复制的时候必须带上这个xsec_token

user_id 好获取啊 ,关键是xsec_token 怎么生成的呢

@zhuzhuss33
Copy link

我也研究一阵子了,没有办法仅从一个“note_id”已知信息,去获取到对应的xsec_token。有个绕路的方法,但是需要知道这篇笔记对应的用户id,从用户主页接口获取,找到对应inote_d。不然单篇笔记的采集只能从源头上规范,比如复制的时候必须带上这个xsec_token

user_id 好获取啊 ,关键是xsec_token 怎么生成的呢

xsec_token是服务器返回的,只能用博主主页作品的接口,传入user_id和cursor去遍历博主所有作品,每次返回结果是有note_id及其对应的xsec_token,匹配你要的note_id就行,但是效率上不能保证

@souldjl
Copy link

souldjl commented Nov 5, 2024

我也研究一阵子了,没有办法仅从一个“note_id”已知信息,去获取到对应的xsec_token。有个绕路的方法,但是需要知道这篇笔记对应的用户id,从用户主页接口获取,找到对应inote_d。不然单篇笔记的采集只能从源头上规范,比如复制的时候必须带上这个xsec_token

user_id 好获取啊 ,关键是xsec_token 怎么生成的呢

xsec_token是服务器返回的,只能用博主主页作品的接口,传入user_id和cursor去遍历博主所有作品,每次返回结果是有note_id及其对应的xsec_token,匹配你要的note_id就行,但是效率上不能保证

那关键字搜索的话,也要这样子吗 ? 太难受了哦,这样子的话

@zhuzhuss33
Copy link

zhuzhuss33 commented Nov 5, 2024

我也研究一阵子了,没有办法仅从一个“note_id”已知信息,去获取到对应的xsec_token。有个绕路的方法,但是需要知道这篇笔记对应的用户id,从用户主页接口获取,找到对应inote_d。不然单篇笔记的采集只能从源头上规范,比如复制的时候必须带上这个xsec_token

user_id 好获取啊 ,关键是xsec_token 怎么生成的呢

xsec_token是服务器返回的,只能用博主主页作品的接口,传入user_id和cursor去遍历博主所有作品,每次返回结果是有note_id及其对应的xsec_token,匹配你要的note_id就行,但是效率上不能保证

那关键字搜索的话,也要这样子吗 ? 太难受了哦,这样子的话

image
关键词接口【https://edith.xiaohongshu.com/api/sns/web/v1/search/notes】的返回结果有xsec_token的呀

@souldjl
Copy link

souldjl commented Nov 5, 2024

哦哦,晚上下班回去试一下

@JoeanAmier
Copy link
Owner

xsec_token 的值与账号、日期、来源都有关,不是固定的。

@souldjl
Copy link

souldjl commented Nov 6, 2024

xsec_token 的值与账号、日期、来源都有关,不是固定的。

哦哦。意思要 实时的是吗 ,我说呢 ,我先用关键字抓了 几百页笔记存到 本地 json 文件中,再去遍历这个文件 ,获取笔记详情,结果 就抓了一个 就出验证码了

@souldjl
Copy link

souldjl commented Nov 10, 2024

xsec_token 的值与账号、日期、来源都有关,不是固定的。

哦哦。意思要 实时的是吗 ,我说呢 ,我先用关键字抓了 几百页笔记存到 本地 json 文件中,再去遍历这个文件 ,获取笔记详情,结果 就抓了一个 就出验证码了

okk,验证了一下,拿到笔记id 和 xsec_token是 可以直接获取到笔记的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
不会处理(wontfix) 不会处理的问题
Projects
None yet
Development

No branches or pull requests

7 participants