1.从一个给定的网址中分析其所包含的 URL 并爬取对应的网页,直到爬取完全部
不重复的网页为止。
2.支持分布式爬取,同时记录输出每一个网页的大小。
3.采用多线程结构设计,实现高性能的网络爬虫。
Windows10+python3.6+celery+redis3.2+redis Desktop Manager
通过celery架构实现分布式的结构,用redis存储celery的broker和爬取的数据,用python编写的爬虫可以从一个网页爬取该一个网站内的URL以及连接的外链还有它们的网页大小,以json格式返回到redis中存储。
1、打开redis服务
cmd中进入redis目录,通过redis-server redis.windows.conf指令打开redis服务。可以看到在6379端口(安装时配置或通过修改配置文件修改)
2、celery框架任务发布
从终端进入工作目录,输入celery -A task worker -l info -P eventlet 指令发布task里的任务,展示如下,可以看到config,tasks,连接信息等。可以看到transport在db1、result在db2
3、运行爬虫程序
在pycharm上运行exec_crawling.py,如下所示,该程序通过app.send_task()来开始执行任务。
可以看到celery接收到了task任务。
4、采集完成、存储
采集完成后,通过Redis Desktop Manager看到采集的数据,以json格式存储,如下所示:
代码:
https://download.csdn.net/download/yuandong_d/10894492
参考资料:
分布式爬虫原理、基础、实战
https://www.jianshu.com/p/b26124772a00
https://www.jianshu.com/p/e5539d96641c
https://www.jianshu.com/p/0c6e162c4bfa#
celery框架学习笔记
http://www.cnblogs.com/forward-wang/p/5970806.html
redis安装