
迫于 sf 没人看,所以到这里来,具体

链接: https://segmentfault.com/q/1010000018385188
主要是想间隔性的爬取防止被 Ban,例如这个人的微博量很多,例如有 300 多页,我就想着多进程一次请求 9 个页面,然后赞停几秒,然后继续一次请求 9 个页面,循环直到请求完是我思路哪里不对么? 在线等,挺急的
if __name__ == '__main__': p = Pool(9) x = 1 y = 10 while y <= 30: for i in range(x,y): p.apply_async(getPage, args = (i,)) print('9 page done!') time.sleep(random.randint(3,5)+random.random()) x += 10 y += 10 p.close() p.join() print('Done!') 1 wzwwzw Mar 4, 2019 微博的数据好像有保护。你检查一下 25 页之后是不是正常的访问。 |
2 simple2025 Mar 4, 2019 via Android 第 10 页,20 页的数据请求不到的吧,如果我没有理解错你的代码 |
3 zh826256645 Mar 5, 2019 如果你不确定你爬取的接口有没有做什么特殊的处理,建议先别使用多线程(协程)进行爬取,测试一次爬取的数据对不对得上 |
4 XxxxD OP @zh826256645 @wzwwzw 好的,谢谢,我试试 @chenqh 这个应该没有吧,首先是 1-10,( 1-9 ), 然后 10-20,( 10-19 ),20-30 (20-29), 应该是没有落下 |
5 dadama Mar 5, 2019 via Android 第 10 和 20 没取到吧,range1 到 10 不包含 10,后面加 10 又从 11 开始了 |