Nutch 组件扩展 nutch-ajax

GPL
Java
跨平台
2015-02-26
EntDIY

Nutch AJAX page Fetch, Parse, Index Plugin

项目简介

基于Apache Nutch 2.3 和 Htmlunit, Selenium WebDriver 等组件扩展,实现对于 AJAX 加载类型页面的完整页面内容抓取,以及特定数据项的解析和索引。

According to the implementation of Apache Nutch 2.X, we can't get dynamic HTML information from fetch pages including AJAX requests as it will ignore all AJAX requests.

This plugin will use Htmlunit and Selenium WebDriver to fetch whole page content with necessary dynamic AJAX requests.

It developed and tested with Apache Nutch 2.3, you can try it on other Nutch 2.X version or refactor the source codes as your design.


项目托管同步更新站点列表:

https://github.com/xautlx/nutch-ajax

http://git.oschina.net/xautlx/nutch-ajax


主要特性

  • 常规的HTML页面抓取: 对于常规的例如新闻类没有AJAX特性的页面可以直接用Nutch自带的protocol-http插件抓取。

  • 常规的AJAX页面抓取: 对于绝大部分诸如jQuery ajax加载的页面,可以直接用htmlunit扩展插件抓取。

  • 特殊的AJAX请求页面抓取: 诸如淘宝/天猫的页面采用了独特的Kissy Javascript组件,目前测试htmlunit无法正确解析,因此退而求其次采用效率低一些的Selenium WebDriver方式实现页面数据抓取。

  • 基于页面滚动的AJAX请求页面抓取: 诸如淘宝/天猫的商品详情页面会基于页面滚动发起商品描述信息的加载,通过Htmlunit或Selenium WebDriver扩展处理可以实现此类页面数据抓取。

扩展插件说明

  • lib-pinyin: 用于parse或index插件转换中文到拼音提交solr;部署用于solr dataimporthandler组件进行拼音转换的transformer扩展插件

  • lib-htmlunit: 基于Htmlunit的多线程处理,缓存控制,请求正则控制等特性扩展插件

  • protocol-s2jh: 基于Htmlunit和Selenium WebDriver实现的AJAX页面Fetcher插件

  • parse-s2jh: 基于XPath解析页面元素内容; 持久化解析到的结构化数据,如MySQL,MongoDB等; 对于个别复杂类型AJAX页面定制判断页面加载完成的回调判断逻辑

  • index-s2jh: 追加设置需要额外传递给SOLR索引的属性数据; 设定不需要索引的页面规则;

详细参考文档

项目提供一份比较详细的“基于Nutch&Solr定向采集解析和索引搜索的整合技术指南文档”,可通过以下两种方式查看参考文档内容:

运行方式

整个项目基于官方的Apache Nutch 2.3源码基础之上添加插件代码和配置,运行方式和官方指南保持一致,具体请参考:http://wiki.apache.org/nutch/

同时工程代码中提交了Eclipse的工程配置文件,可以直接import Eclipse中Run或Debug运行,Nutch工程以Ivy进行依赖管理,可采用ANT Build方式或建议在Eclipse IDE安装Apache Ivy IDE插件进行工程编译运行。

snapshot

snapshot

snapshot

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

nutch-ajax 发布基于 Nutch&Solr 的文档更新

项目提供一份比较详细的“基于Nutch&Solr定向采集解析和索引搜索的整合技术指南文档”,可通过以下两种方式查看参考文档内容: * 直接获取项目内容后,在document目录下根据自己熟悉的编辑器...

2015/05/04 14:16

没有更多内容

加载失败,请刷新页面

没有更多内容

7
回答
项目中markdown文件的相对路径图片解析问题

相同内容的markdown格式文件,提交到github和oschina,对于其中以相对路径引用图片的写法,github能正常解析,oschina解析访问不...

2015/05/04 14:48

没有更多内容

加载失败,请刷新页面

没有更多内容

开发网络爬虫应该怎样选择爬虫框架

有些人问,开发网络爬虫应该选择Nutch、Crawler4j、WebMagic、scrapy、WebCollector还是其他的?这里按照我的经验随便扯淡一下: 上面说的爬虫,基本可以分3类: 1.分布式爬虫:Nutch 2.JAVA单...

2015/11/12 16:17
117
0
开发网络爬虫应该怎样选择爬虫框架

有些人问,开发网络爬虫应该选择Nutch、Crawler4j、WebMagic、scrapy、WebCollector还是其他的?这里按照我的经验随便扯淡一下: 上面说的爬虫,基本可以分3类: 1.分布式爬虫:Nutch 2.JAVA单...

2015/11/12 16:33
334
1
开发网络爬虫应该怎样选择爬虫框架?

有些人问,开发网络爬虫应该选择Nutch、Crawler4j、WebMagic、scrapy、WebCollector还是其他的?这里按照我的经验随便扯淡一下: 上面说的爬虫,基本可以分3类: 1.分布式爬虫:Nutch 2.JAV...

2015/11/03 20:11
383
0
网络爬虫技术总结

对于大数据行业,数据的价值不言而喻,在这个信息爆炸的年代,互联网上有太多的信息数据,对于中小微公司,合理利用爬虫爬取有价值的数据,是弥补自身先天数据短板的不二选择,本文主要从爬虫...

2016/07/01 15:31
1K
3
基于Nutch&Solr定向采集解析和索引搜索的整合技术指南文档

常规的HTML页面抓取: 对于常规的例如新闻类没有AJAX特性的页面可以直接用Nutch自带的protocol-http插件抓取。 常规的AJAX页面抓取: 对于绝大部分诸如jQuery ajax加载的页面,可以直接用htmlu...

2015/06/26 11:10
130
0
基于Nutch&Solr定向采集解析和索引搜索的整合技术指南文档

常规的HTML页面抓取: 对于常规的例如新闻类没有AJAX特性的页面可以直接用Nutch自带的protocol-http插件抓取。 常规的AJAX页面抓取: 对于绝大部分诸如jQuery ajax加载的页面,可以直接用htmlu...

2015/06/26 11:11
402
3
44款Java 网络爬虫开源软件

极简网络爬虫组件 WebFetch WebFetch 是无依赖极简网页爬取组件,能在移动设备上运行的微型爬虫。 WebFetch 要达到的目标: 没有第三方依赖jar包 减少内存使用 提高CPU利用率 加快网络爬取速...

2018/06/04 14:36
149
0
Apache Nutch源码工程在Linux和Windows平台换行符差异问题处理

最近在提交发布个人开源项目:[https://github.com/xautlx/nutch-ajax][1] (基于Apache Nutch 2.3和Htmlunit, Selenium WebDriver等组件扩展,实现对于AJAX加载类型页面的完整页面内容抓取,...

2015/03/09 14:20
90
0
Nutch爬取Ajax请求的动态网页

Nutch Ajax htmlunit

2014/07/07 17:43
303
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部