ReaJason / xhs

基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

vcjj opened this issue · comments

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

···
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}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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