Hellager / weibo_supertopic_sign

基于Python/Nodejs的微博超话签到脚本,支持云函数运行或青龙面板运行
MIT License
94 stars 39 forks source link

获取超话列表超出原本页数 #24

Closed yunzimo closed 1 year ago

yunzimo commented 1 year ago

image 本来也就一页,没想到停不下来了一直在获取

Hellager commented 1 year ago

试试改一下 Sign_Weibo.js 看看具体参数出了什么问题,since_id 属性里应该有 page 这一项

// Sign_Weibo.js line 216
res_obj = res.data;
+ console.log(res_obj);

// Sign_Weibo.js line 227
since_id = card_list_info.since_id;
+ console.log(since_id);
yunzimo commented 1 year ago

试试改一下 Sign_Weibo.js 看看具体参数出了什么问题,since_id 属性里应该有 page 这一项

// Sign_Weibo.js line 216
res_obj = res.data;
+ console.log(res_obj);

// Sign_Weibo.js line 227
since_id = card_list_info.since_id;
+ console.log(since_id);

输出的since_idundefined,读取的都是重复的第一页的内容,虽然但是当我的res_obj内容为:


{
  cardlistInfo: {
    can_shared: 0,
    total: 213,
    show_style: 1,
    title_top: '我的赞',
    containerid: '2308696371436709_-_mix',
    cardlist_head_cards: [ [Object] ],
    page_type: '03',
    background: '',
    cardlist_menus: [ [Object], [Object] ]
  },
  cards: [
    {
      card_type: 11,
      card_group: [Array],
      title: '2023/03',
      openurl: ''
    },
    {
      card_type: 11,
      title: '2023/02',
      card_group: [Array],
      openurl: ''
    },
    {
      card_type: 11,
      title: '2023/01',
      card_group: [Array],
      openurl: ''
    },
    { card_type: 11, card_group: [Array], openurl: '' },
    {
      card_type: 11,
      title: '2022/10',
      card_group: [Array],
      openurl: ''
    },
    {
      card_type: 11,
      title: '2022/09',
      card_group: [Array],
      openurl: ''
    },
    {
      card_type: 11,
      title: '2022/07',
      card_group: [Array],
      openurl: ''
    },
    {
      card_type: 9,
      show_type: 1,
      itemid: '2308696371436709_-_mix_4796245749008079',
      scheme: 'sinaweibo://detail?mblogid=LEnN4BNpB',
      mblog: [Object],
      actionlog: [Object],
      openurl: '',
      cleaned: true
    },
    {
      card_type: 9,
      show_type: 1,
      itemid: '2308696371436709_-_mix_4796245618725757',
      scheme: 'sinaweibo://detail?mblogid=LEnMRABY1',
      mblog: [Object],
      actionlog: [Object],
      openurl: '',
      cleaned: true
    },
    {
      card_type: 11,
      title: '2022/05',
      card_group: [Array],
      openurl: ''
    },
    {
      card_type: 11,
      title: '2022/04',
      card_group: [Array],
      openurl: ''
    },
    {
      card_type: 11,
      title: '2022/03',
      card_group: [Array],
      openurl: ''
    },
    {
      card_type: 11,
      title: '2022/02',
      card_group: [Array],
      openurl: ''
    },
    { card_type: 11, card_group: [Array], openurl: '' },
    { card_type: 11, card_group: [Array], openurl: '' },
    {
      card_type: 11,
      title: '2022/01',
      card_group: [Array],
      openurl: ''
    },
    { card_type: 11, card_group: [Array], openurl: '' },
    { card_type: 11, card_group: [Array], openurl: '' },
    {
      card_type: 11,
      title: '2021/12',
      card_group: [Array],
      openurl: ''
    },
    { card_type: 11, card_group: [Array], openurl: '' }
  ],
  banners: null,
  leading_cards: []
}

时,还是显示无待签到列表。⚆_⚆

yunzimo commented 1 year ago

其他超话都为我手动签到,特意留了两个

Hellager commented 1 year ago

和我印象里的参数确实对不上,用的是最新版的软件吗? 可能是 api 参数改变了,这个得我重新改程序 或者你试试降一下软件版本

yunzimo commented 1 year ago

和我印象里的参数确实对不上,用的是最新版的软件吗? 可能是 api 参数改变了,这个得我重新改程序 或者你试试降一下软件版本

很遗憾的是我的是IOS系统,可能无法做到降低软件版本(也许我可以找个安卓机试试),出现的这种错误是否跟我是IOS的版本有关呢?

Hellager commented 1 year ago

应该没有,我也是 IOS,应该主要还是软件的问题 稍微等等吧,我争取这周末就改好

Hellager commented 1 year ago

@yunzimo 我用最新的微博轻享版 v6.1.4.3 试了下是没问题的,主要问题出在你的参数上,正常的参数会像这样

  cardlistInfo: {
    show_style: 1,
    containerid: "100803_-_followsuper",
    cardlist_head_cards: [ [Object] ],
    page_type: '03',
    background: '',
    cardlist_menus: [ [Object], [Object] ],
    since_id: "xxxx",
    v_p: "59"
  },

说明你的 cookie 可能有问题,请按照说明文档,找到正确的 cookie 对应的请求,格式应该是

https://api.weibo.cn/2/cardlist?aid=xxxxxxxx

yunzimo commented 1 year ago

@yunzimo 我用最新的微博轻享版 v6.1.4.3 试了下是没问题的,主要问题出在你的参数上,正常的参数会像这样

  cardlistInfo: {
    show_style: 1,
    containerid: "100803_-_followsuper",
    cardlist_head_cards: [ [Object] ],
    page_type: '03',
    background: '',
    cardlist_menus: [ [Object], [Object] ],
    since_id: "xxxx",
    v_p: "59"
  },

说明你的 cookie 可能有问题,请按照说明文档,找到正确的 cookie 对应的请求,格式应该是

https://api.weibo.cn/2/cardlist?aid=xxxxxxxx

通过打日志分析和大量的测试我终于发现了问题

  1. 关键cookie内容不仅仅包含aid,from,gsid,s这四个还需要包含c,containerid这两个参数
  2. 同时containerid的值一般是100803_-_followsuper而不是类似100803_-_page_my_follow_normal。缺少这两个参数我都无法成功运行程序。
  3. containerid的值会影响返回的cardlistInfo内容,可能导致无法找到since_id从而使程序一直运行下去。
  4. 当然了如果能正确获取到列表但通知是签到失败可能是需要验证,手动验证就可以成功签到了,希望能在通知中添加提示。
Hellager commented 1 year ago

解决就好,验证那个主要是我触发不了,而且也不一定触发,没办法做测试