upbit/pixivpy

调用aapi.user_bookmarks_illust时部分插画的简介信息遗失

Opened this issue · 4 comments

今天发现调用用户收藏插图的信息的时候,部分插图信息中简介信息丢失,沿着这里点进去的插图中简介信息也会丢失,只有通过作者页面点进去才会显示正确的信息,不知道这个错误能不能稳定复现...

from pixivpy3 import *
api = AppPixivAPI()
api.auth(refresh_token='...')
res1 = api.user_bookmarks_illust(71293046)
print(*map(lambda x: x['caption'] == '', filter(lambda x: x['id'] == 118788706, res1['illusts']))) #从这里得到的illust的caption信息为空
res2 = api.illust_detail(118788706)
print(res2['illust']["caption"]) #但直接调用illust_detail却能得到正确的信息

user_bookmarks_illust是收藏列表,在不点进具体detail页面时,客户端是否有相关字段的展示?

客户端上本身不会显示简介信息,但从用户收藏插画界面点进去之后,插画的简介就会取这个user_bookmarks_illust返回的值。
这里是从收藏界面点进去的插画展示:
image
这里是直接从作者页面点进去的插画展示:
image
但奇怪的是,从user_bookmarks_illust返回的结果中有些有原插画的caption,有些却没有,所以我更倾向于这是pixiv api的一个bug...

可能是有意这样裁剪的。按上面情况看可能是API的BUG,也可能是有意这样裁剪的
user_bookmarks_illust本身并不需要展示这些信息,点击后是重新用detail获取作品详情获取数据。因此在列表接口隐藏了这些不需要的字段,从而提高拉取列表的效率。

你可以留意下是否有某个时间前后,这些illust都缺少了这些扩展字段

主要是点进去之后,根据我抓包的结果Pixiv客户端那里并没有重新按照插画的pid重新调用illust_detail,而是直接沿用的上次的结果,而我的爬虫之前就是根据页面URL和简介,标题信息是否变动来决定是否将这条记录更新到我的数据库中,结果一晚上下来就成这样了...
image

image

导致我现在的记录全都是在有和无的交错之中的,时间分布还特别不规律...