dataabc / weibo-follow

爬取关注列表中微博账号的微博
179 stars 51 forks source link

关于提示cookies无效时 #2

Open barnett2010 opened 4 years ago

barnett2010 commented 4 years ago

大佬:

我获取了一个微博号的1000个关注id, 再从这1000个关注,去获取他们每个人的关注。 脚本从这开始运行。一开始没有异样,然后就挂机了, 等第二天去检查时,发现获取了3万8千条结果。

然后cmd窗口显示: 用户关注页数1 cookie无效或提供的user_id无效。

猜大概是这个原因,导致某个时间点开始,之后的id全部没有获取,跳过了。

所以想求个新功能,当脚本提示cookies无效时,脚本自动暂停。

这样的话,当去检查时,就可以更新cookie。。再接着爬了。

dataabc commented 4 years ago

把提示语句改成sys.exit就行

sys.exit(u'cookie无效或提供的user_id无效')

这样有缺点,因为可能是user_id出错了,如果用sys.exit后面正确的user_id就不执行了,现在是跳过出错user_id继续执行

barnett2010 commented 4 years ago

@dataabc 大佬,我找到为什么会提示userid无效了。 是因为个性域名的问题。 脚本拿到的个性域名,会缺少最后一个字母。 比如某id是abcde的话,txt里只有abcd 要如何修改,让脚本一律存数字?

dataabc commented 4 years ago

能否提供出错的user_id,我尝试看看是不是个性域名信息没有获取准确。

因为如果网页上就是个性域名,获取的就是个性域名。

可以转换成user_id,但是因为要多访问一次网页,效率低,因此不建议这么做。

barnett2010 commented 4 years ago

@dataabc 好的。感谢大佬的回复。

比如我关注了刘亦菲 这是她的首页 有个性域名https://weibo.com/liuyifeiofficial 然后获取我的关注列表,得到刘亦菲的 个性域名 liuyifeiofficia 就会缺少一个l

dataabc commented 4 years ago

感谢反馈,已经修复了。

出现这个是因为关注者信息一般有两个超链接,一个是包含昵称的链接,一个是包含“关注”的超链接。第一个可能链接肯能包含user_id或个性域名,第二个一般是user_id。为了尽量获取user_id,选择解析第二个链接。然而刘亦菲是你已关注的用户,所以页面就没有“关注”这个链接了,程序就会解析第一个。现在已经修复,对于未关注的用户,获取user_id;对于已关注的用户,尽量获取user_id,否则获取个性域名。

如果还有其它问题,欢迎继续反馈。