为了账号安全,请及时绑定邮箱和手机立即绑定

怎样运用多线程来加速爬取

我用了同样的方法去抓取IMDB里面电影的信息,但是速度非常慢。请问怎么通过threading的方法能够同时获取new_urls和new_data?

正在回答

1 回答

赞思考,改成多线程,要多一些处理:

1、设定线程数目为N

2、改用multiprocessing.Process方法启动crawl方法N次,每个线程记录序号为N;

3、修改UrlManger,获取url的时候,需要提供序号参数,只返回hash(url)%N==0的url,或者干脆维护N个队列,每个线程单独使用自己的URL队列即可;


难点在于处理UrlManager和Outputer的多线程冲突,如果数据是存到MySQL,要么使用上面说的线程隔离的方法,要么使用DB加锁的方式处理冲突;


0 回复 有任何疑惑可以回复我~
#1

冯渣渣 提问者

非常感谢!
2016-01-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Python开发简单爬虫
  • 参与学习       227670    人
  • 解答问题       1219    个

本教程带您解开python爬虫这门神奇技术的面纱

进入课程

怎样运用多线程来加速爬取

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信