爬虫的多进程插入数据到mongodb, 数据对不上
最近在用多进程爬微博的api, getPage 函数是一次api请求一个页面,一次api请求返回10条个人动态,然后写入到mongodb函数库里面。
我的逻辑是例如这个人的微博量很多,例如有300多页,我就想着多进程一次请求9个页面,然后赞同几秒,然后继续一次请求9个页面,循环直到请求完
如下面这里最后不是应该爬取到 993=243条动态么,但是我mongodb数据库显示才100条,而且有好几次数据都都对不上,我有点奇怪,apply_async, 但是join了不是会等待所有进程结束的么,为什么最后的数量对不上呢?
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!')
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论