就 web 爬虫来说, scrapy, selenium 之类的爬虫框架和自己用 chrome 扩展做爬虫有啥区别?

查看 81|回复 9
作者:Features   
就 web 爬虫来说,scrapy ,selenium 之类的爬虫框架和自己用 chrome 扩展做爬虫有啥区别?
大家平时用哪个呢?

爬虫, Selenium, Scrapy, Chrome

locoz   
scrapy 是通用场景下的完整解决方案,把基本的处理流程规范、数据输出、分布式部署、后续运维管理等问题都解决了。
selenium 不属于爬虫框架,用在爬虫上只是作为一个控制浏览器的工具,本质上解决的只是请求和提取数据的逻辑部分。
chrome 扩展实际与 selenium 是一样的,也只是作为一个控制浏览器的工具。
所以很显然,scrapy 和另外两个完全不是同样的东西,前者可以在通用场景下做到简单配置就实现一个完整项目,后两者则需要自己开发除请求和提取数据以外的其他部分。
locoz   
另外,chrome 扩展和 selenium 虽然都是作为控制浏览器的工具,但由于运行环境的不同,也会存在各自的优劣势场景,实际还是要根据情况使用。比如 chrome 扩展可以直接提供给非技术人员使用,简单粗暴,心智负担低,但如果涉及到写数据库之类的操作就麻烦些,而用 selenium 这种外部程序控制浏览器的方式就不会有这个问题。
NoOneNoBody   
用扩展做爬虫,这是利用别人的访问采集数据后台提交?还是说用户(别人)可控数据自用?
Features
OP
  
@NoOneNoBody 就是采集文章之类的,只在开发者模式下使用的
pengtdyd   
自己的写的是手工作坊,用框架是智能化超级工厂。
NoOneNoBody   
@Features #4
哦,都是自用
后两者都是基于浏览器渲染,不方便做大规模爬虫,如果不需要渲染,例如 html 可直接分析,还是纯 cli 效率高
需要渲染的也可用 cef ,不过 cef 在 python 支持不完整,还不怎么好用
还有一个选择是 webkit
selenium 用在爬虫我感觉有点跑偏了,可以,但这个总归主要用途是模拟浏览器控制,做自动化更合适
youngce   
爬虫本质都一样,都是发出 http 请求得到想要的数据。
但面向的需求场景不一样,比如有这样的一个需求:
请采集维基百科特定分类下的所有主题页面,大概 700W 个页面,要求一周内交付数据?
- 首先:浏览器插件已经不在考虑范围内了,使用一个浏览器翻完维基百科,你等得了用户可能等不了
- 其次:纯 selenium 处理这类弱反爬的网站也没有什么优势了,且不说无头浏览器的速度慢,如果开 1000 个无头浏览器,一般的也需要海量的内存了。
- 剩下的就是爬虫代码自行编写了,用 scrapy ,或者自己造轮子最后实现类似 scrapy 的框架的功能,对接 ip 池来进行并发爬取。(中间也可能用到 selenium 搭配处理一些反爬策略)
用哪个?看需求吧:
- 海量数据+长期需求=自己写爬虫
- 少量数据+临时需求= 数据采集器搞一下交差
Features
OP
  
@NoOneNoBody 非常感谢,长见识了
jmss   
@NoOneNoBody cef 是啥,webkit 呢,能展开说说吗,只会用 selenium 跑渲染。。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部