JoeanAmier / XHS-Downloader

小红书链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接;采集小红书作品信息;提取小红书作品下载地址;下载小红书无水印作品文件!
GNU General Public License v3.0
5.66k stars 829 forks source link

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

Open cheleo opened 1 month ago

cheleo commented 1 month ago

这两天发现 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 commented 1 month ago

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

zhuzhuss33 commented 1 month ago

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

nixsorid commented 3 weeks ago

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

huifeng-kooboo commented 3 weeks ago

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

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

cornerpanorama commented 2 weeks ago

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

souldjl commented 2 weeks ago

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

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

souldjl commented 2 weeks ago

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

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

zhuzhuss33 commented 2 weeks ago

我也研究一阵子了,没有办法仅从一个“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 commented 2 weeks ago

我也研究一阵子了,没有办法仅从一个“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 commented 2 weeks ago

我也研究一阵子了,没有办法仅从一个“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 commented 2 weeks ago

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

JoeanAmier commented 2 weeks ago

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

souldjl commented 2 weeks ago

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

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

souldjl commented 1 week ago

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

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

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