爬虫开发知识入门基础(4)

Cplusplus
laical
初来炸道
初来炸道
帖子: 9
注册时间: 2020年03月26日 17:45
拥有现金: 锁定
联系:

爬虫开发知识入门基础(4)

帖子 #1 laical » 2020年06月28日 17:29

爬虫加速
当爬取的数据量非常大时,如何高效快速地进行数据抓取是关键。
常见的措施有多线程、多进程、异步、分布式、细节优化等。


爬虫加速 / 多线程、多进程
爬虫是网络请求密集型任务,所以使用多进程和多线程可以大大提高抓取效率,如使用 threading、multiprocessing 等。
爬虫加速 / 异步
将爬取过程改成非阻塞形式,当有响应式再进行处理,否则在等待时间内可以运行其他任务,如使用 asyncio、aiohttp、Tornado、Twisted、gevent、grequests、pyppeteer、pyspider、Scrapy 等。


爬虫加速 / 分布式
分布式的关键在于共享爬取队列,可以使用 celery、huey、rq、rabbitmq、kafka 等来实现任务队列的对接,也可以使用现成的框架 pyspider、Scrapy-Redis、Scrapy-Cluster 等。

爬虫加速 / 优化
可以采取某些优化措施来实现爬取的加速,如:
• DNS 缓存
• 使用更快的解析方法
• 使用更高效的去重方法
• 模块分离化管控
1589287339695-6ed5aca7-fe26-4163-88bd-76732de66c2a.webp.jpg


爬虫加速 / 架构
如果搭建了分布式,要实现高效的爬取和管理调度、监控等操作,我们可以使用两种架构来维护我们的爬虫项目。
• 将 Scrapy 项目打包为 Docker 镜像,使用 K8S 控制调度过程。
• 将 Scrapy 项目部署到 Scrapyd,使用专用的管理工具如 SpiderKeeper、Gerapy 等管理。
1589287339694-31b12a3d-0ad3-41b3-84f5-0a3865a971cd.webp.jpg

当然爬虫采集数据使用高质量的http代理 ,效果是最好的。
您没有权限查看这个主题的附件。

回到 “C/C++”

在线用户

用户浏览此论坛: 没有注册用户 和 0 访客