摘要:一是一個(gè)開源解析器,可直接解析某個(gè)地址文本內(nèi)容。通過或選擇器來查找取出數(shù)據(jù),實(shí)現(xiàn)爬蟲。無頭瀏覽器一個(gè)完整的瀏覽器內(nèi)核包括解析引擎渲染引擎請求處理等但是不包括顯示和用戶交互頁面的瀏覽器。
(一)Jsoup
Jsoup是一個(gè)Java開源HTML解析器,可直接解析某個(gè)URL地址、HTML文本內(nèi)容。通過Dom或Css選擇器來查找、取出數(shù)據(jù),實(shí)現(xiàn)爬蟲。
maven坐標(biāo)
org.jsoup jsoup 1.11.2
Jsoup開發(fā)指南(中文版)
演示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("百度圖片點(diǎn)擊路徑:"+es.attr("href")); } }(二 )PhantomJs
PhantomJS是一個(gè)可編程的無頭瀏覽器。通過PhantomJs可以采集Ajax生成的內(nèi)容。
無頭瀏覽器:一個(gè)完整的瀏覽器內(nèi)核,包括js解析引擎,渲染引擎,請求處理等,但是不包括顯示和用戶交互頁面的瀏覽器。
PhantomJs官方文檔
步驟:
下載安裝,配置環(huán)境變量
編寫并執(zhí)行js腳本
演示Demo
var page = require("webpage").create(), //網(wǎng)頁對象 system = require("system"), //系統(tǒng)對象 address,t; phantom.outputEncoding="gbk"; //設(shè)置輸出編碼 //phantom.outputEncoding="utf-8"; //設(shè)置輸出編碼 var arr = system.args; //判斷參數(shù)是否傳入 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("頁面訪問結(jié)束:耗時(shí):"+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("圖片點(diǎn)擊路徑:"+result); phantom.exit(); }) } }) }
假設(shè)文件名為 c:/baidu.js;在命令行中執(zhí)行 phantomjs c:/baidu.js http://www.baidu.com
java 調(diào)用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()); } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/93523.html
摘要:一是一個(gè)開源解析器,可直接解析某個(gè)地址文本內(nèi)容。通過或選擇器來查找取出數(shù)據(jù),實(shí)現(xiàn)爬蟲。無頭瀏覽器一個(gè)完整的瀏覽器內(nèi)核包括解析引擎渲染引擎請求處理等但是不包括顯示和用戶交互頁面的瀏覽器。 (一)Jsoup Jsoup是一個(gè)Java開源HTML解析器,可直接解析某個(gè)URL地址、HTML文本內(nèi)容。通過Dom或Css選擇器來查找、取出數(shù)據(jù),實(shí)現(xiàn)爬蟲。 maven坐標(biāo) or...
摘要:新特性系統(tǒng)底層重構(gòu),規(guī)范包名采集線程白名單過濾優(yōu)化,避免冗余失敗重試增強(qiáng)渲染方式采集能力,原生新提供,支持以方式采集頁面數(shù)據(jù)支持采集非頁面,如接口等,直接輸出響應(yīng)數(shù)據(jù)選擇即可簡介是一個(gè)分布式爬蟲框架。默認(rèn)提供單機(jī)版爬蟲。 v1.2.2 新特性 1、系統(tǒng)底層重構(gòu),規(guī)范包名; 2、采集線程白名單過濾優(yōu)化,避免冗余失敗重試; 3、增強(qiáng)JS渲染方式采集能力,原生新提供 SeleniumPha...
摘要:的官方網(wǎng)址為,其使用手冊網(wǎng)址為本次分享將實(shí)現(xiàn)的功能為利用爬取某個(gè)搜索詞語暫僅限英文的百度百科的介紹部分,具體的功能介紹可以參考博客爬蟲自制簡單的搜索引擎。 ??Jsoup 是一款Java 的HTML解析器,可直接解析某個(gè)URL地址、HTML文本內(nèi)容。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數(shù)據(jù)。Jsoup的官方網(wǎng)址為: https:...
摘要:介紹在博客爬蟲爬取豆瓣電影圖片中我們利用的爬蟲框架,將豆瓣電影圖片下載到自己電腦上。那么,在的爬蟲的也可以下載圖片嗎答案當(dāng)然是肯定的在本次分享中,我們將利用的包和函數(shù)來實(shí)現(xiàn)圖片的下載。 介紹 ??在博客:Scrapy爬蟲(4)爬取豆瓣電影Top250圖片中我們利用Python的爬蟲框架Scrapy,將豆瓣電影Top250圖片下載到自己電腦上。那么,在Java的爬蟲的也可以下載圖片嗎?答...
摘要:介紹在博客爬蟲爬取中國高校排名前名并寫入中,我們利用來寫爬蟲,將中的大學(xué)排名表格爬取出來,并存入到中。本次分享將用的來實(shí)現(xiàn)相同的功能,并將爬取到的數(shù)據(jù)存入到數(shù)據(jù)庫中。 介紹 ??在博客:Python爬蟲——爬取中國高校排名前100名并寫入MySQL中,我們利用Python來寫爬蟲,將http://gaokao.xdf.cn/201702/1... 中的大學(xué)排名表格爬取出來,并存入到My...
閱讀 752·2021-09-28 09:35
閱讀 2591·2019-08-29 11:25
閱讀 2154·2019-08-23 18:36
閱讀 1849·2019-08-23 16:31
閱讀 2065·2019-08-23 14:50
閱讀 3112·2019-08-23 13:55
閱讀 3286·2019-08-23 12:49
閱讀 2074·2019-08-23 11:46