OpenSpider github地址:
https://github.com/happyAnger6/OpenSpider
主要目的是学习使用python以及各种开源软件实现一个灵活的爬虫框架,这系列文章主要是对实现的过程进行介绍。
第一次提交主要实现以下功能:
主函数通过tornado库开启20个协程不断的从队列中获取url,直到url队列为空。获取到URL后,将页面的抓取工作交由Celery任务队列,这样实现了爬取任务的分布式。
爬取工作考虑到javascript的存在,通过selinum进行页面获取;获取到页面后通过BeautifulSoup进行页面解析,并抓取页面中的URL,将URL列表返回协程。协程将返回的URL放入队列。
代码结构介绍: