Stein Gu

Results 46 comments of Stein Gu

可能是版本问题,我去虚拟机里测一下你这个版本

> > 我试了一遍是可以的,你的青龙版本是多少,我的是v2.13.3 > > 2.11.3 版本 2.11.3 无法复现 docker 拉取的是 whyour/qinglong:2.11.3 没有更多信息的话只能你自己查了

1. 挂青龙的话还是建议用 nodejs 版本,正常运行长这样 ![normal](https://i.ibb.co/WBncyVN/image.png) 2. python 运行 test 请看注释顺序查看生成的 json 文件,目前怀疑可能是拆 cookie 提取参数的时候出现了问题,查查看你的 data/request_params.json 里拆完的参数和你抓包的参数是否一致,或者直接 debug 模式跑打个断点看看收到的 cardlistInfo 长什么样子,结构可以参考这张图 ![cardlistInfo](https://user-images.githubusercontent.com/86463341/140634128-3d49a0e7-4394-4d27-a5f4-9242ebfed389.png)

你是不是安卓的?把函数这里的 User-Agent 改成你抓包拿到的 User-Agent ``` def test_get_follow_list(cookie): headers = { 'Accept': '*/*', 'Host': 'api.weibo.cn', 'Accept-Encoding': 'gzip, deflate, br', 'User-Agent': 'WeiboOverseas/4.4.1 (iPhone; iOS 14.7.1; Scale/3.00)', 'Accept-Language': 'zh-Hans-CN;q=1, en-CN;q=0.9', } ```

首先还是说明下版本问题: python 版本你可以理解为为了云函数定制的,为了避免云函数单次运行时长限制会**需要**多次运行 nodejs 版本是为了青龙的运行定制的,一次性签到所有函数 其次我也跑了一遍本地测试,你的请求参数里比我的多出来了两个参数, 不知道是为什么,把他们删了试试 ![超话请求参数.png](https://s2.loli.net/2022/10/27/UvZxIg5JkufTOa1.png)

1. 你的响应是什么?或者你尝试抓签到某个超话的包,关键词应该是 button 2. 现在重放请求的话也能得到相同的响应吗? 3. 抓包软件重放请求能得到正确结果的话尝试把 test 运行过程中涉及网络请求的**所有参数**都改成和你抓到的包的参数一致,然后继续进行测试

> 我用js版本本地跑了下试试,显示这个但并没有签到成功 ![image](https://user-images.githubusercontent.com/100580891/198332147-b94a9d6e-a8e6-4b05-ae27-8ffe523f1f48.png) Node 版本也别忘了该 User-Agent,我估计 debug 打断点这里的 cardlist 还是客户端校验失败

1. 你这个是响应头,主要看响应内容 2. 目前来看因为你说只是签到就会触发验证码,那估计是和你账号关系比较大,当然也只是个猜测 3. 有关重放,因为我不知道你的 app 是什么,我拿 Stream 做个例子 4. 至于为什么要测试重放,你可以这么理解:脚本的目的是创建和你用手机签到时产生的**所有参数**都一样的网络请求,我写的程序当然对应的是**我能跑通**的请求,不一定适用于你的;由手机客户端直接生成的网络请求也不一定能独立于客户端而直接发送。 5. 所以既然你现在由遇到客户端校验失败的问题,也的确和我用的不是一个平台的客户端,那这部分参数的设置和可用性就需要你自己来单独测试。而如果你能在抓包软件重放请求并成功响应,说明问题不在客户端了,那我们可以继续讨论脚本程序的问题,如果重放不成功,那说明问题就在你的账号或者客户端了,这部分就是我也无能为力的了。或者你有条件借台 iphone 登下微博轻享版然后 stream 抓包,拿到参数再用脚本跑看看能不能成功。 ![找到重放.png](https://s2.loli.net/2022/10/27/TuaxzKncQSUYWeH.png) ![运行重放.png](https://s2.loli.net/2022/10/27/3SQEl1KY7HnCX5N.png)

那和账号关系比较大,geetest验证因为没遇到过,也没法测试,暂时搞不定 或者考虑试试这个方法 [基于Chrome插件的微博超话自动签到](https://blog.csdn.net/qq_40140889/article/details/117744753?spm=1001.2014.3001.5501)

目前能想到的就三种 1. 用 python + seleuim 自己写段脚本,这样就可以搞定验证码 2. 既然是安卓系统也可以用按键精灵吧? 3. 用我上述那个浏览器插件签到,或者试试 [AutomaApp](https://github.com/AutomaApp/automa), 今天刚知道,还没试过