java phantomjs_java+phantomjs实现动态网页抓取

1.下载地址:http://phantomjs.org/download.html

2.java代码

public void getHtml(String url)

{

HTML="";

String jsPath = "C:\\phantomjs\\examples\\myjs.js";

String exePath = "C:\\phantomjs\\bin\\phantomjs.exe";

System.out.println(jsPath);

System.out.println(exePath);

Runtime rt = Runtime.getRuntime();

Process p;

try {

p = rt.exec(exePath + " " + jsPath + " " + url);

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);

}

HTML=sbf.toString();

is.close();

br.close();

sbf=null;

is=null;

br=null;

} catch (IOException e) {

e.printStackTrace();

}

}

3.js

var page = require('webpage').create(),

system= require('system'),

t, address;

page.settings.loadImages= false; //为了提升加载速度,不加载图片

page.settings.resourceTimeout = 10000;//超过10秒放弃加载//此处是用来设置截图的参数。不截图没啥用

page.viewportSize ={

width:1280,

height:800};

block_urls= ['baidu.com'];//为了提升速度,屏蔽一些需要时间长的。比如百度广告

page.onResourceRequested = function(requestData, request){for(url inblock_urls) {if(requestData.url.indexOf(block_urls[url]) !== -1) {

request.abort();return;

}

}

}

address= system.args[1];

page.open(address,function(status) {if (status !== 'success') {

console.log('FAIL to load the address');

}else{

console.log(page.content);

setTimeout(function(){ phantom.exit(); }, 6000);

}

phantom.exit();

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值