基于phantomjs二次开发的百度元搜索采集器
2014-04-07 15:01
218 查看
一、phantomjs介绍
(1)一个基于webkit内核的无头浏览器,即没有UI界面,即它就是一个浏览器,只是其内的点击、翻页等人为相关操作需要程序设计实现。
(2)提供javascript API接口,即通过编写js程序可以直接与webkit内核交互,在此之上可以结合java语言等,通过java调用js等相关操作,从而解决了以前c/c++才能比较好的基于webkit开发优质采集器的限制。
(3)提供windows、linux、mac等不同os的安装使用包,也就是说可以在不同平台上二次开发采集项目或是自动项目测试等工作。
二、phantomjs常用API介绍
近几天的学习找了不少资料,也包括官网的,但其相关学习资料还是相对较少的,很多问题都是进行N多测试才搞清楚,在此耗费了不少时间。在学习时,结合官网和本篇博文效果会更好。
(1)常用内置几大对象
1、区分phantomjs的对象和打开的web page的对象,如document、window等,两者都有,在调用page.evaluate和不调用的时候,注意区分二者的范围,容易在调试时出现很多的问题,且不好发现。
2、page.injectJs和page.includeJs的区别,前者侧重本地的js文件,与libraryPath挂购,后者侧重网络js文件,尤其在引入jquery等第三方库时,会经常遇到。
3、编码问题,两个重要参数,--output-encoding,--script-encoding,前者为输出编码,后者为所使用js、参数配置文件的编码,为方便起鉴,建议均采用utf-8编码,并注所应用到的目标文件的编码,以免引起很不可思议的异常,又无从查起。
三、百度元搜索采集器
主要是java se+js+phantomjs的应用,
(1) 编写好js脚文程序,预留出所有可配置参数,并提供json文件传输相关参数。
(2) 通过java程序,定义相关参数并生成对应的json文件。
(3) 通过java命令行调用API,调用phantomjs命令,并传入js、配置文件路径,从而开启爬虫。
(4) 首先采集关键词的搜索页的链接集合,最后统一去遍历采集具体的对象网页。
四、应用小结
经过上述的项目实测应用,它将非常方便的应用于模拟登陆,如微博、电商类,或是小米、火车票抢票等项目中,下一步计划将其与上述项目结合,开发更有意思的项目。
原文地址:http://hi.baidu.com/erliang20088/item/41919dd0820be3f43dc2cb31?qq-pf-to=pcqq.group
相关文章推荐
- 基于phantomjs二次开发的百度元搜索采集器
- 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(MyEclipse + SVN)
- iOS基于百度地图的开发(6)——google坐标转换成百度坐标
- 开源:基于百万商业圈.NET开发框架开发的并行带分词的采集器
- 开源:基于百万商业圈.NET开发框架开发的并行带分词的采集器
- PhoneGap插件开发---基于百度LBS的导航插件(三)
- 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)
- 基于zhphpWeixinApi.class.php开发微信+ 百度API翻译案例
- 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)
- (转)微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)
- 使用PhoneGap开发基于Html5应用二:第一个PhoneGap应用:百度
- iOS基于百度地图的开发(7)——百度坐标转换成Google坐标
- (android地图开发) 基于百度Lbs服务定位用户的当前位置
- 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(MyEclipse + SVN)
- PhoneGap插件开发---基于百度LBS的导航插件(二)
- 基于百度MAP开发实践一
- 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(MyEclipse + SVN)
- PhoneGap插件开发---基于百度LBS的导航插件(一)
- 基于.net开发chrome核心浏览器【五】