采集ajax加载生成的网页
来源:互联网 发布:联通网络信号怎么样 编辑:程序博客网 时间:2024/05/01 05:41
方案: phantomjs + js + java .
phantomjs
PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API。它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。 PhantomJS 可以用于 页面自动化 , 网络监测 , 网页截屏 ,以及 无界面测试 等。
下载完phantomjs之后直接解压就可以使用,然后在path目录加入phantomjs的路径(以便直接在命令行就可以执行phantomjs命令)。 接下来要完成个代码,一个是用phantomjs去获取页面(采用js编写行为),一个是采用java去调用phantomjs来达到获取内容的作用,接下来直接贴代码。
//codes.js system = require('system') address = system.args[1];//获得命令行第二个参数 接下来会用到 var page = require('webpage').create(); var url = address; page.open(url, function (status) { //Page is loaded! if (status !== 'success') { console.log('Unable to post!'); } else { console.log(page.content); } phantom.exit(); });
import org.apache.commons.io.IOUtils; import java.io.*; /** * Created with IntelliJ IDEA. * User: lsz * Date: 14-4-22 * Time: 下午1:17 * utils for http */ public class HttpUtils { public static String getAjaxCotnent(String url) throws IOException { Runtime rt = Runtime.getRuntime(); Process p = rt.exec("phantomjs.exe c:/phantomjs/codes.js "+url);//这里我的codes.js是保存在c盘下面的phantomjs目录 InputStream is = p.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); StringBuffer sbf = new StringBuffer(); String tmp = ""; while((tmp = br.readLine())!=null){ sbf.append(tmp); } //System.out.println(sbf.toString()); return sbf.toString(); } public static void main(String[] args) throws IOException { getAjaxCotnent("http://m.daojia.com"); } }
0 0
- 采集ajax加载生成的网页
- java调用phantomjs采集ajax加载生成的网页
- java调用phantomjs采集ajax加载生成的网页
- Java调用phantomjs采集ajax加载生成的网页
- Scrapy框架结合Spynner采集需进行js,ajax动态加载的网页并提取网页信息(以采集微信公众号文章列表为例)
- Scrapy框架结合Spynner采集需进行js,ajax动态加载的网页并提取网页信息(以采集微信公众号文章列表为例)
- Scrapy框架结合Spynner采集需进行js,ajax动态加载的网页并提取网页信息(以采集微信公众号文章列表为例)
- ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页)
- ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页)
- ajax异步加载网页爬虫
- 采集一个网页的数据
- 简单的网页采集程序
- 采集网页
- 使用FireBug插件辅助采集网页动态加载数据
- 网页采集资料---有防采集的解决方法
- Ajax实现瀑布流动态加载网页
- Ajax异步加载web网页数据
- IE网页文本采集的实现
- 8.18学习总结
- maven 自定议archetype设置
- 编写大规模的C语言程序
- VS2012自带的 性能分析 工具使用实例
- android ListView之——BaseAdapter使用
- 采集ajax加载生成的网页
- .Net 雜談
- Leetcode#74||Search a 2D Matrix
- 深度学习(deep learning)如果有春天,先得摆脱高能耗高资源依赖的局面
- Linux————TCP/IP协议
- 基于深度优先算法的有向图环路检测
- 消息MSG、 获取消息GetMessage、消息过滤、第一个鼠标、键盘消息等
- Android点击应用Icon发生了什么
- Android Api Demos登顶之路(三十六)Fragment-->Custom Animation