亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

網絡爬蟲(網絡蜘蛛)之網頁抓取

2019-11-17 03:26:42
字體:
來源:轉載
供稿:網友

現在有越來越多的人熱衷于做網絡爬蟲(網絡蜘蛛),也有越來越多的地方需要網絡爬蟲,比如搜索引擎、資訊采集、輿情監測等等,諸如此類。網絡爬蟲涉及到的技術(算法/策略)廣而復雜,如網頁獲取、網頁跟蹤、網頁分析、網頁搜索、網頁評級和結構/非結構化數據抽取以及后期更細粒度的數據挖掘等方方面面,對于新手來說,不是一朝一夕便能完全掌握且熟練應用的,對于作者來說,更無法在一篇文章內就將其說清楚。因此在本篇文章中,我們僅將視線聚焦在網絡爬蟲的最基礎技術——網頁抓取方面。

說到網頁抓取,往往有兩個點是不得不說的,首先是網頁編碼的識別,另外一個是對網頁腳本運行的支持,除此之外,是否支持以POST方式提交請求和支持自動的cookie管理也是很多人所關注的重要方面。其實java世界里,已經有很多開源的組件來支持各種各樣方式的網頁抓取了,包括上面提到的四個重點,所以說使用Java做網頁抓取還是比較容易的。下面,作者將重點介紹其中的六種方式。

 

HttpClient
HttpClient 是 Apache Jakarta Common 下的子項目,可以用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,并且它支持 HTTP 協議最新的版本和建議。
以下列出的是 HttpClient 提供的主要的功能,要知道更多詳細的功能可以參見 HttpClient 的主頁。
 (1)實現了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
 (2)支持自動轉向
 (3)支持 HTTPS 協議
 (4)支持代理服務器

   (5)支持自動的Cookies管理等

Java爬蟲開發中應用最多的一種網頁獲取技術,速度和性能一流,在功能支持方面顯得較為底層,不支持JS腳本執行和CSS解析、渲染等準瀏覽器功能,推薦用于需要快速獲取網頁而無需解析腳本和CSS的場景。

范例代碼如下:

package cn.ysh.studio.crawler.httpclient;import org.apache.http.client.HttpClient;import org.apache.http.client.ResponseHandler;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.BasicResponseHandler;import org.apache.http.impl.client.DefaultHttpClient;/** * 基于HtmlClient抓取網頁內容 * * @author www.yshjava.cn */publicclassHttpClientTest{publicstaticvoid main(String[] args)throwsException{//目標頁面String url ="http://www.yshjava.cn";//創建一個默認的HttpClientHttpClient httpclient =newDefaultHttpClient();try{//以get方式請求網頁http://www.yshjava.cnHttpGet httpget =newHttpGet(url);//打印請求地址System.out.PRintln("executing request "+ httpget.getURI());//創建響應處理器處理服務器響應內容ResponseHandlerresponseHandler=newBasicResponseHandler();//執行請求并獲取結果String responseBody = httpclient.execute(httpget, responseHandler);System.out.println("----------------------------------------");System.out.println(responseBody);System.out.println("----------------------------------------");}finally{//關閉連接管理器            httpclient.getConnectionManager().shutdown();}}}

 

Jsoup
jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數據。

網頁獲取和解析速度飛快,推薦使用。
 主要功能如下:
 1. 從一個URL,文件或字符串中解析HTML;
 2. 使用DOM或CSS選擇器來查找、取出數據;
 3. 可操作HTML元素、屬性、文本;

范例代碼如下:

package cn.ysh.studio.crawler.jsoup;import java.io.IOException;import org.jsoup.Jsoup;/** * 基于Jsoup抓取網頁內容 * @author www.yshjava.cn */publicclassJsoupTest{publicstaticvoid main(String[] args)throwsIOException{//目標頁面String url ="http://www.yshjava.cn";//使用Jsoup連接目標頁面,并執行請求,獲取服務器響應內容String html =Jsoup.connect(url).execute().body();//打印頁面內容System.out.println(html);}}

 

HtmlUnit
htmlunit 是一款開源的java 頁面分析工具,讀取頁面后,可以有效的使用htmlunit分析頁面上的內容。項目可以模擬瀏覽器運行,被譽為java瀏覽器的開源實現。這個沒有界面的瀏覽器,運行速度也是非常迅速的。采用的是Rhinojs引擎。模擬js運行。

網頁獲取和解析速度較快,性能較好,推薦用于需要解析網頁腳本的應用場景。

范例代碼如下:  

package cn.ysh.studio.crawler.htmlunit;import com.gargoylesoftware.htmlunit.BrowserVersion;import com.gargoylesoftware.htmlunit.Page;import com.gargoylesoftware.htmlunit.WebClient;/** * 基于HtmlUnit抓取網頁內容 * * @author www.yshjava.cn */publicclassHtmlUnitSpider{publicstaticvoid main(String[] s)throwsException{//目標網頁String url ="http://www.yshjava.cn";//模擬特定瀏覽器Firefox_3WebClient spider =newWebClient(BrowserVersion.FIREFOX_3);//獲取目標網頁Page page = spider.getPage(url);//打印網頁內容System.out.println(page.getWebResponse().getContentAsString());//關閉所有窗口        spider.closeAllWindows();}}

 


Watij

Watij(發音wattage)是一個使用Java開發的Web應用程序測試工具,鑒于Watij的簡單性和Java語言的強大能力,Watij能夠使您在真正的瀏覽器中完成Web應用程序的自動化測試。因為是調用本地瀏覽器,因此支持CSS渲染和JS執行。

網頁獲取速度一般,IE版本過低(6/7)時可能會引發內存泄露。

范例代碼如下:

package cn.ysh.studio.crawler.ie;import watij.runtime.ie.IE;/** * 基于Watij抓取網頁內容,僅限Windows平臺 * * @author www.yshjava.cn */publicclassWatijTest{publicstaticvoid main(String[] s){//目標頁面String url ="http://www.yshjava.cn";//實例化IE瀏覽器對象        IE ie =new IE();try{//啟動瀏覽器            ie.start();//轉到目標網頁            ie.goTo(url);//等待網頁加載就緒            ie.waitUntilReady();//打印頁面內容System.out.println(ie.html());}catch(Exception e){            e.printStackTrace();}finally{try{//關閉IE瀏覽器                ie.close();}catch(Exception e){}}}}

 

Selenium
Selenium也是一個用于Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE、Mozilla Firefox、Mozilla Suite等。這個工具的主要功能包括:測試與瀏覽器的兼容性——測試你的應用程序看是否能夠很好得工作在不同瀏覽器和操作系統之上。測試系統功能——創建衰退測試檢驗軟件功能和用戶需求。支持自動錄制動作和自動生成。Net、Java、Perl等不同語言的測試腳本。Selenium 是ThoughtWorks專門為Web應用程序編寫的一個驗收測試工具。

網頁獲取速度較慢,對于爬蟲來說,不是一個好的選擇。

范例代碼如下:

package cn.ysh.studio.crawler.selenium;import org.openqa.selenium.htmlunit.HtmlUnitDriver;/** * 基于HtmlDriver抓取網頁內容 * * @author www.yshjava.cn */publicclassHtmlDriverTest{publicstaticvoid main(String[] s){//目標網頁String url ="http://www.yshjava.cn";HtmlUnitDriver driver =newHtmlUnitDriver();try{//禁用JS腳本功能            driver.setJavascriptEnabled(false);//打開目標網頁            driver.get(url);//獲取當前網頁源碼String html = driver.getPageSource();//打印網頁源碼System.out.println(html);}catch(Exception e){//打印堆棧信息            e.printStackTrace();}finally{try{//關閉并退出                driver.close();                driver.quit();}catch(Exception e){}}}}

 

Webspec 

一個開源的帶有界面的Java瀏覽器,支持腳本執行和CSS渲染。速度一般。
 范例代碼如下:

package cn.ysh.studio.crawler.webspec;import org.watij.webspec.dsl.WebSpec;/** * 基于WebSpec抓取網頁內容 * * @author www.yshjava.cn */publicclassWebspecTest{publicstaticvoid main(String[] s){//目標網頁String url ="http://www.yshjava.cn";//實例化瀏覽器對象WebSpec spec =newWebSpec().mozilla();//隱藏瀏覽器窗體        spec.hide();//打開目標頁面        spec.open(url);//打印網頁源碼System.out.println(spec.source());//關閉所有窗口        spec.closeAll();}}


源碼下載:網絡爬蟲(網絡蜘蛛)之網頁抓取范例源碼


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人久久久| 亚洲美女av网站| 91亚洲精品久久久久久久久久久久| 国内精久久久久久久久久人| 成人免费网视频| 日韩黄色av网站| 成人a在线视频| 欧美韩国理论所午夜片917电影| 亚洲激情视频在线| 一个人www欧美| 精品久久久久久中文字幕一区奶水| 色婷婷av一区二区三区在线观看| 在线日韩欧美视频| 久久精品91久久久久久再现| 成人中心免费视频| 色在人av网站天堂精品| 国产深夜精品福利| 国产区精品在线观看| 国内精品小视频在线观看| 久久精品中文字幕| 中文字幕亚洲无线码在线一区| 欧美日韩在线视频首页| 日韩精品高清在线| 国产精品久久久久久亚洲调教| 一本一本久久a久久精品综合小说| 国产亚洲一区精品| 欧美性精品220| 北条麻妃一区二区三区中文字幕| 国产精品成人免费电影| 亚洲影院污污.| 国产精品三级网站| 久久久亚洲精选| 在线视频亚洲欧美| 中文字幕亚洲欧美日韩高清| 91精品国产乱码久久久久久久久| 亚洲男女自偷自拍图片另类| 狠狠色狠狠色综合日日五| 一本色道久久88综合亚洲精品ⅰ| 国产精品福利网站| 美日韩精品免费观看视频| 精品国产一区二区三区久久久| 久久久国产视频| 欧美疯狂xxxx大交乱88av| 日韩一区二区精品视频| 中文字幕欧美专区| 国产日韩欧美成人| 久久久久国产视频| 5566成人精品视频免费| 成人黄色中文字幕| 国产69精品久久久久9999| 九九久久精品一区| 国内精品久久久久影院 日本资源| 美女av一区二区三区| 亚洲精品视频播放| 精品呦交小u女在线| 成人亚洲欧美一区二区三区| 亚洲欧美www| 国产成人一区二区在线| 国产精品最新在线观看| 国产免费一区二区三区在线能观看| 亚洲欧美成人在线| 欧美精品中文字幕一区| 中国人与牲禽动交精品| 91成人精品网站| 欧美猛少妇色xxxxx| 亚洲午夜激情免费视频| 亚洲欧美国产视频| 亚洲欧美中文字幕| 中文字幕免费国产精品| 久久国产精品亚洲| 国产成人精品电影| 亚洲石原莉奈一区二区在线观看| 国产主播在线一区| 亚洲韩国欧洲国产日产av| 欧洲成人免费视频| 综合136福利视频在线| 欧美黑人又粗大| 成人黄色网免费| 久久精品国产亚洲7777| 亚洲第一视频网站| 中日韩美女免费视频网站在线观看| 亚洲一区二区久久久久久| 日本中文字幕久久看| 青草青草久热精品视频在线观看| 欧美亚洲国产视频小说| 久久频这里精品99香蕉| 97热在线精品视频在线观看| 色妞一区二区三区| 91高清视频在线免费观看| 亚洲综合在线做性| 国产精品揄拍一区二区| 亚洲国产精彩中文乱码av在线播放| 国产日韩欧美成人| 欧美精品午夜视频| 国产欧美日韩高清| 亚洲人成亚洲人成在线观看| 日本a级片电影一区二区| 久久国产精品视频| 欧美理论电影在线播放| 国产精品美女久久久久av超清| 久久中文字幕一区| 最近2019免费中文字幕视频三| 91沈先生作品| 亚洲自拍偷拍在线| 欧美日韩中文字幕综合视频| 亚洲精品免费网站| 这里只有精品在线播放| www.99久久热国产日韩欧美.com| 性色av一区二区三区免费| 欧美伦理91i| 亚洲国产91精品在线观看| 亚洲国产高潮在线观看| 国产成人一区二区三区电影| 欧美大荫蒂xxx| 亚洲人成自拍网站| 日韩网站免费观看高清| 国产精品va在线播放我和闺蜜| 国产精品久久9| 亚洲老板91色精品久久| 欧美国产激情18| 91精品中文在线| 欧美日韩高清在线观看| 欧美性少妇18aaaa视频| 欧美日韩国产中文精品字幕自在自线| 国产精品都在这里| 亚洲国产精品免费| 国产婷婷成人久久av免费高清| 欧美福利在线观看| 国产a∨精品一区二区三区不卡| 日韩精品久久久久久久玫瑰园| 国产成人久久久精品一区| 国产一区二区在线免费视频| 日韩色av导航| 美女啪啪无遮挡免费久久网站| 亚洲欧美在线第一页| 国a精品视频大全| 亚洲欧洲中文天堂| 日本亚洲精品在线观看| 国产亚洲欧洲黄色| 日韩在线激情视频| 久久精品欧美视频| 国产精品老牛影院在线观看| 中文字幕亚洲情99在线| 欧美成人精品不卡视频在线观看| 亚洲国产成人久久综合一区| 日韩欧美精品中文字幕| 日韩精品在线免费观看视频| 狠狠久久五月精品中文字幕| 国产精品久久久久久久久久久久久久| 欧美国产第一页| 亚洲精品国产欧美| 久久躁日日躁aaaaxxxx| 久久久免费精品视频| 久久久国产一区二区三区| www.xxxx精品| 亚洲天堂男人的天堂| 国产精品主播视频| 92看片淫黄大片欧美看国产片| 日本三级韩国三级久久| 日韩欧美精品网站| 国产精品va在线播放| 亚洲va国产va天堂va久久| 亚洲一区二区三区乱码aⅴ蜜桃女| 中文字幕在线看视频国产欧美|