Selenium+Phantomjs做Java爬虫

背景

以前,觉得爬虫是不稳定的,而且不被业界允许的,从来没想过会在实际的项目中使用。现在,由于各种突发情况,必须使用爬虫才能完成相应任务。起初,觉得爬虫不过是爬取网页,解析网页就可以了,比较简单,谁知一路心酸泪。

查阅各种资料,Java相关的爬虫工具也比较多,由于时间关系,只简单看了下面几种,分析如下:

 

HtmlUnit

webmagic

Selenium

phantomjs

优点

Java编写的无界面浏览器,内置Rhinojs浏览器引擎,支持表单填充,点击链接,能够获取动态页面等。

webmagic采用完全模块化的设计,支持链接提取、页面下载、内容抽取、持久化,支持多线程抓取,分布式抓取,并支持自动重试、自定义UA/cookie等功能。另外国人编写,文档齐全,支持。

Web浏览器测试工具,支持获取动态网页,支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等,模拟真实用户的操作。可以用来测试项目的兼容性。

PhantomJS是一个基于webkit的JavaScript API。支持Dom操作、css选择器、截屏等,无界面的浏览器操作,节省内存,另外支持js脚本,功能强大。

缺点

对css、js支持不好,最大的缺点,获取动态网页需要指定固定等待时间,类如:Thread.sleep(10000),时间不好把控,性能极差

静态HTML获取方便,但动态网页无法获取,需要另外使用工具,类如Selenium浏览器模拟。

运行过程中会打开浏览器界面,内存消耗大,与各种浏览器版本强依赖,适用于测试项目兼容性,不适用当前业务。

无界面浏览器,无法显示的模拟用户操作

由于这次需要爬取的网站,基本上都是采取JS+AJAX获取数据,渲染的动态网页,所以最终选择了 selenium+phantomjs组合进行爬取,因为selenium封装了phantomjs,能够让我们更方便,更好的使用,节约时间和成本。

准备

phantomjs下载:

使用phantomjs则需要下载相应运行器,下载网址:https://phantomjs.org/download.html,大家可以根据自己的系统进行下载,这里我们使用windows版本—phantomjs-2.1.1-windows.zip。大家下载下来解压即可。

Maven依赖如下:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selen
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值