1 )、Scrapy:
使用Scrapy,Python开发的快速、高级屏幕快照和web捕获框架,捕获网站并从页面中提取结构化数据。 Scrapy用途广泛,可用于数据挖掘、监测、自动化测试。
Scrapy的吸引人之处在于它是一个框架,任何人都可以根据自己的需要轻松修改它。 它还提供了各种类型爬行动物的基类,包括BaseSpider和sitemap爬行动物,最新版本还提供了web2.0爬行动物支持。
Scrap是碎片的意思,这个Python的爬虫框架被称为Scrapy。
优点:
1 .极其灵活定制攀登。
2 .社区人数多,文档充实。
3 .通过URL重新采用布隆过滤器计划。
4 .能够处理不完整的HTML,Scrapy已经提供了selectors (基于HTML提供更高级的接口)。
可以有效处理不完整的HTML代码。
坏处:
1 .对新学生不亲切,需要一定的初学者时间
) 2、Pyspider:
pyspider是一个用python实现的强大的网络爬虫系统,通过浏览器界面编写脚本、调度功能和实时显示爬网结果,利用后端常用的数据库存储爬网结果、任务和任务
优点:
1 .支持分布式部署。
2 .完全可视化,对用户非常友好: WEB界面编写调试脚本,停止脚本,监控运行状态,查看活动历史记录,获取结果产出。
3 .很简单,五分钟就能拿到。 脚本规则简单,开发效率高。 支持捕获JavaScript页面。
总之,Pyspider非常强大,像产品而不是框架一样强大。
坏处:
1 .如果在URL中重用数据库而不是布隆过滤器,则存储数以亿计的db io会导致效率急剧下降。
2 .使用人性化牺牲灵活性,定制能力下降。
)3) Apache Nutch (高大上) )。
Nutch是为搜索引擎设计的爬虫类,大部分用户都是需要获取(精确提取)准确数据的爬虫类,在Nutch执行的一系列过程中,三分之二是为搜索引擎设计的。
运行Nutch这个框架需要Hadoop,Hadoop需要建立集群。 对想早点入门爬虫类的我来说很佩服…
有些资源地址记载在这里,接下来可能会学习。
1.Nutch支持分布式捕获,并支持Hadoop,可实现多台计算机的分布式捕获、存储和索引。 此外,它还提供了一个插件框架,可以轻松扩展分析各种网页内容、收集各种数据、查询、集群和过滤等功能。 有了这个框架,Nutch插件的开发变得非常容易,第三方插件也层出不穷,Nutch的功能和声誉得到了很大的提高。
缺点
1.Nutch对爬行动物定制能力较弱
) 4、网络杂志
WebMagic是一个简单灵活的Java爬虫框架。 基于WebMagic,可以快速开发高效、易维护的爬行动物。
优点:
1 .简单的API,现成
2 .模块化结构,可轻松扩展
3 .提供多线程和分布式支持
缺点:
1 .不支持捕获js页面
) 5、网络收集器
WebCollector是一种无需配置、易于二次开发的JAVA爬虫框架(内核),可简化API,以较少的代码实现强大的爬虫。 WebCollector-Hadoop是支持分布式爬网的WebCollector的Hadoop版本。
优点:
1 .基于文本密度的网页正文自动提取
2 .支持断点的再次攀登
3 .支持代理
缺点:
1 .不支持分布式,只能单机使用
2 .无URL优先级计划
3 .活跃度不高
(6、Heritrix3
Heritrix是一种由java开发的开源网络爬虫,用户可以通过它从互联网上获取所需的资源
好处
Heritrix的爬行动物有很多自定义参数
缺点
1 .单实例爬行动物,彼此不能合作。
2 .在有限的机器资源中,必须进行复杂的操作。
3 .仅通过官方支持,仅通过Linux进行了测试。
4 .每个爬行动物独立工作,未修订更新。
5 .硬件和系统失败时,恢复能力较低。
6 .用于优化性能的时间很少。
相对于Nutch,Heritrix只是爬虫工具,不提供搜索引擎。 要对捕获的站点进行排序,必须实现复杂的算法,如Pagerank。
(7)、Crawler4j
Crawler4j是一个基于Java的轻量级开源爬虫框架
好处
1 .多线程收集
2 .并入有URL过滤机制,使用BerkeleyDB进行URL过滤。
3 .可扩展至支持结构化提取的网页字段,可用于垂直收集
缺点
1.不支持动态网页抓取,例如网页的ajax部分
2.不支持分布式采集,可以考虑将其作为分布式爬虫的一部分,客户端采集部分
为了更加直观这7种爬虫框架,小编做了一个框架优缺点对比图,如下:
Jsoup(经典·适合静态网友)
这个框架堪称经典,也是我们暑期实训老师讲解的框架。有近乎完整的文档介绍。
和HtmlUnit同样,只能get到静态内容。
不过,这个框架有个有个优点,具有很强大的解析网页的功能。
selenium(Google多名大佬参与开发)
感觉很厉害,实际真的很厉害,看官网以及其他人的介绍,说是真正模拟浏览器。GitHub1.4w+star,你没看错,上万了。但是我硬是没配好环境。入门Demo就是没法运行成功,所以就放弃了。
cdp4j(方便快捷,但是需要依赖谷歌浏览器)
使用前提:
安装Chrome浏览器,即可。
简单介绍:
HtmlUnit的优点在于,可以方便的爬取静态网友;缺点在于,只能爬取静态网页。
selenium的优点在于,可以爬取渲染后的网页;缺点在于,需要配环境变量等等。
将二者整合,取长补短,就有了cdp4j。
之所以选用它,是因为真的方便好用,而且官方文档详细,Demo程序基本都能跑起来,类名起的见名知意。想当年学软件工程的时候,一直在纳闷,为什么要写文档啊,我程序能实现功能不就得了?现如今,看着如此详实的文档,留下了激动而又悔恨的泪水…
cdp4j有很多功能:
a. 获得渲染后的网页源码
b. 模拟浏览器点击事件
c. 下载网页上可以下载的文件
d. 对网页进行截屏或转PDF打印
e. 等等