phantomjs大牛请进

酸菜五花肉 2018-01-18 01:34:43
js文件

system = require('system')
address = system.args[1];//获得命令行第二个参数 接下来会用到
var page = require('webpage').create();
page.settings.resourceTimeout = 30000 ;
page.settings.XSSAuditingEnabled = true ;
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0';
page.customHeaders = {
"Connection" : "keep-alive",
"Cache-Control" : "max-age=0",
"Accept": "*/*",
"Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
};
page.open(address, function(status){
if (status !== 'success') {
console.log('Unable to access network');
phantom.exit();
} else {
var aa=document.querySelectorAll('span');
for (var i=0;i<aa.length;i++){
aa[i].click();
}
console.log('22222222222222');

window.setTimeout(function () {
console.log(page.content);
phantom.exit();
}, 10000);
phantom.exit();

}
});


java代码

public static String getAjaxCotnent(String url) throws IOException {
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("D:\\phantomjs\\bin\\phantomjs.exe C:\\Users\\Administrator\\Desktop\\test.js "+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);
}
System.out.println(sbf.toString());
return sbf.toString();
}

public static void main(String[] args) throws IOException {
getAjaxCotnent("https://market.m.taobao.com/apps/market/toutiao/portal.html?wh_weex=true&data_perfetch=true");
}

想要获取列表页面,但列表页面至获取到了一页数据,需要模拟鼠标下滑才会加载,获取的列表数据没有链接,页数鼠标点击div才跳进二级页面。(我的js是自己瞎写的,试过不好使,想法是获取所有div,遍历每个div,并且实现click,在获取页面信息,)


需要解决的问题1.怎么模拟鼠标下滑加载出所有数据
问题2.怎么模拟鼠标点击进入二级页面,获取二级页面内容
...全文
180 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧