摘要:建议先大概浏览一下项目结构项目介绍新手向,基于构建的分布式爬虫。以爬取考研网的贴子为例,利用进行解析,将符合要求的文章文本存入数据库中。项目地址有任何问题可以与我联系微信
Ugly-Distributed-Crawler
项目介绍建议先大概浏览一下项目结构
新手向,基于Redis构建的分布式爬虫。
以爬取考研网的贴子为例,利用 PyQuery, lxml 进行解析,将符合要求的文章文本存入MySQ数据库中。
协作模块,用于为Master&Worker模块提供代理IP支持
master提取满足条件的文章url,并交给Worker进一步处理
worker解析文章内容,将符合要求的存入数据库
环境依赖sqlalchemy => 1.0.13
pyquery => 1.2.17
requests => 2.12.3
redis => 2.10.5
lxml => 3.6.0
如何启动 0. 先配置好各模块所引用的配置文件 1. 为了更好地运行,cooperator/start.py 应提前开始并完成一次工作函数执行需要预先安装MySQL-server 和 Redis-server.
MySQL中应有名为kybsrc的数据库,且该数据库包含一个名为posts的表,拥有num(INT AUTO_INCREMENT)和post(TEXT)两个字段。
2. 启动 master/start.py第一次执行完后,每五分钟运行一次工作函数
3. 启动 worker/start.py默认只执行一次
核心点说明 1. 通过Redis的集合类型进行代理IP和URL的传递默认循环监听是否有新的URL待解析
# Summary Reference # --------- # 创建句柄 def make_redis_handler(): pool = redis.ConnectionPool(host=r_server["ip"], port=r_server["port"], password=r_server["passwd"]) return redis.Redis(connection_pool=pool) # 获得句柄 def make_proxy_handler(): return make_redis_handler() # 保存到指定的set下 def check_and_save(self, proxy): "pass" self.redis_handler.sadd(r_server["s_name"], proxy)2. 由于在验证代理IP和使用封装的get_url()函数的时候网络IO较多,所以使用多线程(效果还是很明显的)。
#Summary Reference #--------- def save_proxy_ip(self): "pass" for proxy in self.proxy_ip: Thread(target=self.check_and_save, args=(proxy,)).start() def get_url(url): "pass" while True: "pass" resp = request("get", url, headers=headers, proxies={"http": proxy}) "pass"项目地址 https://github.com/A101428020...
有任何问题可以与我联系(微信:smartseer)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38568.html
摘要:包括爬虫编写爬虫避禁动态网页数据抓取部署分布式爬虫系统监测共六个内容,结合实际定向抓取腾讯新闻数据,通过测试检验系统性能。 1 项目介绍 本项目的主要内容是分布式网络新闻抓取系统设计与实现。主要有以下几个部分来介绍: (1)深入分析网络新闻爬虫的特点,设计了分布式网络新闻抓取系统爬取策略、抓取字段、动态网页抓取方法、分布式结构、系统监测和数据存储六个关键功能。 (2)结合程序代码分解说...
分布式爬虫原理 什么是分布式爬虫: 额,这个问题呢,我这样解释,例如爬取网站内的二级网站,我们就需要获取网站中的二级、三级...很多个网站,那么我们如果用自己一台主机爬取明显效率很低,这个时候我们就需要其他主机的帮助了,这个时候我们就将作为Master,为其他主机Slaver提供url的同时,启动程序,没错,我们的工作就这么多,而Slaver主机的作用就是接收url,解析并获取想要的数据。。...
摘要:分布式爬虫框架详解随着互联网技术的发展与应用的普及,网络作为信息的载体,已经成为社会大众参与社会生活的一种重要信息渠道。下载器中间件位于引擎和下载器之间的框架,主要是处理引擎与下载器之间的请求及响应。 scrapy-redis分布式爬虫框架详解 随着互联网技术的发展与应用的普及,网络作为信息的载体,已经成为社会大众参与社会生活的一种重要信息渠道。由于互联网是开放的,每个人都可以在网络上...
阅读 754·2021-09-30 09:46
阅读 3739·2021-09-03 10:45
阅读 3592·2019-08-30 14:11
阅读 2523·2019-08-30 13:54
阅读 2242·2019-08-30 11:00
阅读 2316·2019-08-29 13:03
阅读 1512·2019-08-29 11:16
阅读 3563·2019-08-26 13:52