ReaJason / xhs

基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/
MIT License
1.03k stars 295 forks source link

发布接口报错:无登录信息 #66

Closed vcjj closed 10 months ago

vcjj commented 10 months ago

麻烦看下调用发布接口报错。 其中一段代码:

··· for _ in range(10): try: note = xhs_client.get_note_by_id("6536a639000000001e02b8") print(json.dumps(note, indent=4)) print(help.get_imgs_url_from_note(note)) title = "我是标题" desc = "下面我说两点 \n 1. 第一点 \n 2. 第二点" images = [ "D:/wangfc/aigc/pic/style/阿拉伯风格.jpg", ] image_note = xhs_client.create_image_note(title, desc, images, is_private=False) print(image_note) break except DataFetchError as e: print(e) print("失败重试一下下") ···

get_note_by_id接口调用正常返回 运行到create_image_note接口时报错如下: {'code': -100, 'data': {}, 'msg': '无登录信息', 'success': False}

vcjj commented 10 months ago

debug发现是发布接口中,运行到上传图片时遇到问题:/api/media/v1/upload/web/permit

ReaJason commented 10 months ago

发布接口需要使用 https://creator.xiaohongshu.com/ 这个地址下的 cookie,主页的 cookie 权限有限

dreammis commented 10 months ago

我现在也用不了了 我是调用get_suggest_topic接口,抛出同样的错误,create_video_note也是一样 cookie也是从creator页面获取的。很奇怪

ReaJason commented 10 months ago

我现在也用不了了 我是调用get_suggest_topic接口,抛出同样的错误,create_video_note也是一样 cookie也是从creator页面获取的。很奇怪

我这边测试能够正常发布视频笔记,会不会是删减了 cookie 信息(我直接复制的所有 cookie 信息)或者 IP 被 ban 了。

dreammis commented 10 months ago

我现在也用不了了 我是调用get_suggest_topic接口,抛出同样的错误,create_video_note也是一样 cookie也是从creator页面获取的。很奇怪

我这边测试能够正常发布视频笔记,会不会是删减了 cookie 信息(我直接复制的所有 cookie 信息)或者 IP 被 ban 了。

我试了下用当前电脑的浏览器,上传是正常的。并没有报错,应该不是ip的问题

我这边有3个账号,不知道跟这个是不是有关系。 我后来部署的server版本,把a1设置成一样的,依旧是不行。好奇怪。我之前好像遇到过多个账号,只有一个账号是ok的。想要其他账号能上传,需要在我电脑浏览器里把其他账号退出后,登录,这时候才是可以的。

不知道是不是跟这个有关系

dreammis commented 9 months ago

我知道怎么回事了,其实应该是xhs的问题,web端登录其实有两个:浏览者,创作者 我出现这个问题是因为我的浏览者和创作者不是一个身份,但是又好像是一个cookie,导致了诸多问题

所以大家尽可能要保持主页和创作者页面,是一个账户,这样cookie才不会有各种问题

dreammis commented 9 months ago

另外,请教下 @ReaJason
管理多账号的时候需要账号与服务端的a1保持一致是吧 为什么不能在服务端这里,代码直接帮助替换掉接收到的客户端cookie中的a1呢?

ReaJason commented 9 months ago

另外,请教下 @ReaJason 管理多账号的时候需要账号与服务端的a1保持一致是吧 为什么不能在服务端这里,代码直接帮助替换掉接收到的客户端cookie中的a1呢?

目前是会替换的,只是保持相同,是不需要刷新浏览器的,能保证速度,替换 cookie 会刷新浏览器

dreammis commented 9 months ago

另外,请教下 @ReaJason 管理多账号的时候需要账号与服务端的a1保持一致是吧 为什么不能在服务端这里,代码直接帮助替换掉接收到的客户端cookie中的a1呢?

目前是会替换的,只是保持相同,是不需要刷新浏览器的,能保证速度,替换 cookie 会刷新浏览器

嗯嗯,看到了,因为我只看到demo中有提示要a1保持一致,刚看了下flask部分,确实全局了一个a1替换了。那我就放心了。谢谢你。

fangd123 commented 3 weeks ago

发布接口依然存在问题,报错:

{'code': -100, 'data': {}, 'msg': '无登录信息', 'success': False}

使用的是creator接口的cookie,上传图片时设置了is_creator=True,这个接口正常,但是最后的发布接口note,报了上面的错误