nutch-htmlunit 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
nutch-htmlunit 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 Apache
开发语言 Java
操作系统 跨平台
软件类型 开源软件
所属分类 应用工具网络爬虫
开发厂商
地区 国产
提 交 者 EntDIY
适用人群 未知
收录时间 2013-09-23

软件简介

Nutch Htmlunit Plugin


重要说明:

当前项目基于Nutch 1.X系列已停止更新维护,转向Nutch 2.x系列版本的新项目:http://www.oschina.net/p/nutch-ajax

项目简介

基于Apache Nutch 1.8和Htmlunit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。

According to the implementation of Apache Nutch 1.8, 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 to fetch whole page content with necessary dynamic AJAX requests. It developed and tested with Apache Nutch 1.8, you can try it on other Nutch version or refactor the source codes as your design.

主要特性

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

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

  • 特殊的AJAX请求页面抓取: 诸如淘宝/天猫的页面采用了独特的Kissy Javascript组件, 导致htmlunit无法直接感知到需要等待Kissy发起的请求完成,通过等待页面加载解析内容判断处理实现此类页面数据抓取。

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

运行体验

由于Nutch运行是基于Unix/Linux环境的,请自行准备Unix/Linux系统或Cygwin运行环境。

git clone整个工程代码后,进行本地git下载目录:

cd nutch-htmlunit/runtime/local

bin/crawl urls crawl false 1

//urls参数为爬虫入库url文件目录; crawl为爬虫输出目录; false本应为solr索引url参数,此处设置为false不做solr索引处理; 1为爬虫执行回数

运行结束后可以看到天猫商品页面的价格/描述/滚动加载的图片等所有信息都已经完整获取到。

运行日志输入示例参考:http://git.oschina.net/xautlx/nutch-htmlunit/wikis/Log

扩展插件说明

  • protocol-htmlunit: 基于Htmlunit实现的AJAX页面Fetcher插件

  • parse-s2jh: 基于XPath解析页面元素内容; 基于数据库模式输出解析到结构化数据; 对于个别复杂类型AJAX页面定制判断页面加载完成的回调判断逻辑

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


欢迎关注作者其他项目:

  • S2JH - 基于SSH的企业Web应用开发框架

  • 12306 Hunter - (功能已失效不可用,不过还可以当作Swing开发样列参考只用)Java Swing C/S版本12306订票助手,用处你懂的


展开阅读全文

代码

评论 (1)

加载中
EntDIY软件作者
新年伊始,更新发布一下apache nutch 2.X系列的ajax处理插件:http://git.oschina.net/xautlx/nutch-ajax,原有1.X系列算是完成使命不再更新维护了:https://github.com/xautlx/nutch-htmlunit nutch-htmlunit
2015/02/25 16:55
回复
举报
更多评论
发表了资讯
2014/08/08 00:00

Nutch-Htmlunit 1.8 发布:基于Apache Nutch和Htmlunit的扩展实现AJAX页面爬虫抓取解析插件

之前提供了一个版本,是直接把plugin形式的源码放到代码库,后来发现有不少人反馈说自己集成到apache nutch中编译或运行,遇到这那的问题。因此这次干脆基于Apache Nutch 1.8源码工程,把所有插件源码/依赖/运行参数等预置好,使大家能更简洁全面的使用这个插件。 http://www.oschina.net/p/nutch-htmlunit http://git.o...

11
47
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2019/05/17 08:29

htmlunit的使用

原文转自:https://www.cnblogs.com/davidwang456/articles/8693050.html HtmlUnit使用场景 httpClient的局限性 对于使用java实现的网页爬虫程序,我们一般可以使用apache的HttpClient组件进行HTML页面信息的获取,HttpClient实现的http请求返回的响应一般是纯文本的document页面,即最原始的html页面。 对于一个静态的h...

0
0
发表了博客
2013/01/29 18:44

htmlunit入门

示例1:获取oschina网站的title import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.HtmlPage; public static void getHomeTile() throws FailingHttpStatusCodeException, MalformedU...

0
1
发表了博客
2018/02/06 16:09

HtmlUnit学习总结

HtmlUnit学习总结 转载 2016年09月13日 15:58:25 标签: htmlunit / 爬虫 7304 本文摘抄其他博客或者技术论坛,自己搜集整理如下: HtmlUnit学习总结 摘要 htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容。项目可以模拟浏览器运行,被誉为java浏览器的开源实现。是一个没...

0
0
发表于开发技能专区
2015/05/06 11:25

【转】HtmlUnit: A Quick Introduction

HtmlUnit is an open source java library for creating HTTP calls which imitate the browser functionality. HtmlUnit is mostly used for integration testing on top of unit test frameworks such as JUnit or TestNG. This is done by requesting web pages and asserting the results. Simple Example @Test pub...

0
0
发表了博客
2018/08/08 20:11

htmlunit 模拟登录 无验证码

1.模拟登录csdn,最开始的时候使用的是httpclient,网上的所有模拟登录csdn的版本都是找到lt/execution/event_id.连同用户名及密码 一起发送即可,但是目前的csdn的登录参数可不止这三个,fkid怎么解决?我抓包时发现fkid是登录时其value才被赋值,奈何找了半天找不到调用的函数,猜测是由js动态生成的,于是转而使用 htmlunit ...

0
0
发表于服务端专区
2014/04/04 03:00

模拟浏览器的神器 - HtmlUnit

模拟浏览器执行JavaScript

6
14
发表了博客
2019/11/07 16:24

Htmlunit 设置缓存文件

起因:最近用Htmlunit爬取网页。demo运行起来后,发现速度相当慢,一直在不停的加载js文件,偶尔还会报错,js超时等。抓包工具看了一下请求,发现一直在不停的下载js文件。按理说请求过js文件后,本地是会缓存这些文件的。避免再次从服务器下载,增加服务器压力和降低客户端页面加载速度。由此便开始大量的百度,寻求解决...

0
0
发表了博客
2019/05/22 20:57

HtmlUnit-API的使用就介绍

转自:https://www.cnblogs.com/luotinghao/p/3800054.html 网络爬虫第一个要面临的问题,就是如何抓取网页,抓取其实很容易,没你想的那么复杂,一个开源HtmlUnit包,4行代码就OK啦,例子如下: 1 2 3 4 final WebClient webClient=new WebClient(); final HtmlPage page=webClient.getPage("http://www.yanyulin.info...

0
0
发表于服务端专区
2015/03/06 11:24

HtmlUnit中AJAX执行的问题

HtmlUnit中针对JS、AJAX的支持如何得到最终的HTML源代码数据

1
2
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2014/08/07 15:12

基于Apache Nutch和Htmlunit的扩展实现AJAX页面爬虫抓取解析插件

之前提供了一个版本,是直接把plugin形式的源码放到代码库,后来发现有不少人反馈说自己集成到apache nutch中编译或运行,遇到这那的问题。因此这次干脆基于Apache Nutch 1.8源码工程,把所有插件源码/依赖/运行参数等预置好,使大家能更简洁全面的使用这个插件。 http://www.oschina.net/p/nutch-htmlunit http://git.o...

4
7
发表了问答
2013/11/22 08:57

GIT OSC啥时候把WIKI的图片引用问题解决一下?

GIT代码库管理的确挺方便,按照OSC给出的指南已经把GitHub对应几个项目全部同步提交更新到git.oschina.net。 整个迁移应该还是比较顺利方便的,但是发现个问题就是项目WIKI的图片引用支持问题,GitHub支持直接以相对路径引用wiki项目下面的图片文件,但是Git OSC好像不支持这样的引用方式,全部图片都显示不出来。 这个问...

3
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
1 评论
49 收藏
分享
返回顶部
顶部