支持ajax的爬虫
来源:互联网 发布:家纺品牌 知乎 编辑:程序博客网 时间:2024/05/24 05:01
最近要抓取一个基于ajax的动态网站,最开始想到wget和teleport这些当年web时代的产品,但是发现他们都不支持ajax,也难怪,web时代,网站都是多页面构架,搜索引擎又是流量的重要入口,因此都提供比较好的静态页面,但是随着移动端的普及,微信成为流量主要入口,单页面,基于滚动和ajax的动态页面越来越多,需要开发专门的程序针对页面的ajax抓取内容。
找了一下,试用了crawljax 3.6版本,还是不错的,很方便,对javascript的支持理论上跟客户端是一致的
大家去官网下载最新版本,cli版本就行,命令行运行
java -Dwebdriver.chrome.driver="chromedriver.exe" -jar crawljax-cli-3.6.jar -v -b CHROME -override http://foo.com/rest/api ./output_dir
-Dwebdriver.chrome.driver="chromedriver.exe",因为后面用CHROME作为js引擎,因此需要设置chromedriver.exe,chromedriver.exe需要单独下载
-v,详细输出各个步骤
-b CHROME,使用CHROME模式,默认是FIREFOX,就FIREFOX的占有率,怕产品没测试过FF的兼容性,还是用CHROME更放心,也支持IE
-overrite,如果output_dir存在,则覆盖
url和output_dir就很好理解了
抓取的结果,因为是基于单页面状态空间遍历来抓取的,因此主页是以各个状态的截图的Graph形式展示,可以查看每个状态下DOM形式展开之后的HTML。
这个crawljax的优点很多
1. 有一定学术性,主要是状态空间的遍历,确保页面能够抓取的比较全面
2. 基于java,而且开源,接口很好,支持各种灵活的配置扩展,比如如果有input,可以按照指定的关键字来查询,非click事件也可以扩展模拟
3. 抓取结果的DOM全展开,网页内容查看比较方便
4. 基于真实客户端浏览器的js内核,页面解析跟客户端更加一致,确保结果正确
提示:下载需要amazon云和google服务,需要翻墙。
- 支持ajax的爬虫
- 支持Ajax的网页爬虫技术
- 爬虫的javascript支持
- 支持JavaScript的网络爬虫
- python支持多线程的爬虫
- Struts2的ajax支持
- struts2的AJAX支持
- Struts2的Ajax支持
- Struts2的Ajax支持
- springmvc ajax的支持
- Ext.Ajax 对ajax的支持
- ajax(二)ajax支持的数据格式
- Jetspeed2中Ajax的支持
- jQuery的AJAX支持 【转】
- MOSS2007支持AJAX的配置
- Struts 对 Ajax的支持
- ff支持的Ajax请求
- Struts2 对 Ajax的支持
- lua 栈,checkElement支持删除元素操作
- oracle中多行增删改
- POJ 3974-Palindrome(Manacher算法)
- 用Python实现最速下降法求极值
- HDU 2435 There is a war(修改或添加一条边的最小割 )经典
- 支持ajax的爬虫
- 事件查看器ID 1041
- 微信开发总结 二
- Qt5.5 连接Access2007数据库
- 1098. Insertion or Heap Sort (25)
- hkpDynamics->hkpRigidBodyCinfo
- web前端工具(配色图片图标)
- Linux mkdir、tar 和 kill 命令的 4 个有用小技巧
- 字符数组,字符指针,sizeof,strlen总结