java phantomjs_Java爬虫:Jsoup + Phantomjs
(一)Jsoup
Jsoup是一個Java開源HTML剖析器,可直接剖析某個URL地點、HTML文本內容。經由過程Dom或Css選擇器來查找、掏出數據,完成爬蟲。
maven坐標
org.jsoup
jsoup
1.11.2
演示Demo
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.io.IOException;
public class JsoupDemo
{
public static void main( String[] args ) throws IOException {
Document doc = Jsoup.connect("http://www.baidu.com").get();
System.out.println("title:"+doc.title());
Elements es = doc.select("area");
//Elements es = doc.getElementByTag("area");
System.out.println("百度圖片點擊途徑:"+es.attr("href"));
}
}
(二 )PhantomJs
PhantomJS是一個可編程的無頭瀏覽器。經由過程PhantomJs能夠收集Ajax天生的內容。
無頭瀏覽器:一個完全的瀏覽器內核,包含js剖析引擎,襯著引擎,要求處置懲罰等,然則不包含顯現和用戶交互頁面的瀏覽器。
步驟:
下載安裝,設置環境變量
編寫并實行js劇本
演示Demo
var page = require("webpage").create(), //網頁對象
system = require("system"), //體系對象
address,t;
phantom.outputEncoding='gbk'; //設置輸出編碼
//phantom.outputEncoding='utf-8'; //設置輸出編碼
var arr = system.args;
//推斷參數是不是傳入
if(arr.length==1){
console.log("請輸入待要求url");
phantom.exit(0);
} else {
address = arr[1];
console.log("最先接見頁面:"+address);
t = Date.now();
//接見頁面
page.open(address,function(status){
if(status !== 'success'){
console.log('page faild to load.');
phantom.exit();
} else {
t = Date.now() - t;
console.log("頁面接見完畢:耗時:"+t+"ms");
//引入jquery
page.includeJs("http://code.jquery.com/jquery-2.2.4.min.js",function(){
var result = (page.evaluate(function(){
return $('area').attr('href');
}));
console.log("圖片點擊途徑:"+result);
phantom.exit();
})
}
})
}
假定文件名為 c:/baidu.js;在命令行中實行 phantomjs c:/baidu.js http://www.baidu.com
java 挪用Phantomjs
演示Demo
import java.io.*;
public class PhantomJsDemo
{
public static void main( String[] args ) throws IOException {
Runtime rn = Runtime.getRuntime();
String url = "http://www.baidu.com"
Process process = rn.exec("phantomjs c:/baidu.js " + url);
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuffer sb = new StringBuffer();
String temp = "";
while((temp=br.readLine())!=null){
sb.append(temp);
}
System.out.println(sb.toString());
}
}
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java phantomjs_Java爬虫:Jsoup + Phantomjs的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机能查征信吗
- 下一篇: java美元兑换,(Java实现) 美元