优点:
分布式抓取,存储和索引,有hadoop支持,第三方插件丰富
缺点:
1.分布式爬虫是好几台机器在同时运行,如何保证不同的机器爬取页面的时候不会出现重复爬取的问题。
同样,分布式爬虫在不同的机器上运行,在把数据爬完后如何保证保存在同一个地方。
2.使用上手难,用Nutch进行爬虫的二次开发,爬虫的编写和调试所需的时间,往往是单机爬虫所需的十倍时间不止。
优点:
难问题和复杂的问题都被以前的人解决了(比如DOM树解析和定位、字符集检测、海量URL去重)
使用java语言,对java工程师门槛更低
支持多线程。
支持代理。
能过滤重复URL的。
负责遍历网站和下载页面。爬js生成的信息和网页信息抽取模块有关,往往需要通过模拟浏览器(htmlunit,selenium)来完成。
缺点:
设计模式对软件开发没有指导性作用。用设计模式来设计爬虫,只会使得爬虫的设计更加臃肿。
优点:
1.可以作为做分布式的爬虫,借助一个组件Scrapy-Redis,利用了Redis可以分布式的功能,集成到Scrapy框架中,使得爬虫可以进行分布式。
2.Python的语法简洁 ,入门简单,节点解析简洁高效
缺点:
1. 只能爬取静态网页,无法爬取动态网页。
2. 只能爬取一个网站的数据,无法爬取多个网站的数据。
3. 爬取网页速度较慢,因为它会延迟一段时间再进行下一次请求,以免被网站认为是攻击而封禁 IP 地址。
4. 对网站的服务器负载较大,如果爬取的网站没有足够的带宽,可能会导致网站瘫痪。
5. 爬取的数据并不是实时数据,而是爬取时的数据。
6. 爬取的数据可能会有误差,因为网页内容可能会经常更新。
7.如果爬取的网站有反爬虫措施,Scrapy 可能会被封禁 IP 地址