【圖片抓取】002-簡單一覽

【圖片抓取】002-簡單一覽

[toc]html

項目目的

經過示例項目,初步接觸spring boot,maven等經常使用工具,熟悉經常使用JAVA環境;使用經過httpclient獲取美食傑html數據,使用jsoup來解析html數據並抓取處理目標數據。java

流程圖示意

截圖

  1. 讀取配置,本章節示例中暫不讀取配置;
  2. 使用httpclient讀取html頁面內容,使用jsoup解析頁面內容;
  3. 處理步驟2中的內容,本章節中直接保存爲文件;
  4. 判斷是否繼續解析,真實應用中大部分不會一次只讀取一個url,本次示例只解析一次。

類圖示意

截圖

  • Application main方法啓動,主邏輯實現。
  • IProcesser 目標document處理接口。
  • DefaultProcesserImpl IProcesser實現類。
  • HttpUtils Http處理類。

主要步驟

截圖
示例中會經過咱們的代碼獲取上圖中紅色標記的圖片並保存在本地;jquery

  1. 尋找目標;用瀏覽器打開網址http://www.meishij.net/zuofa/ganzhematitiantang_1.html(建議使用chrome),而後打開瀏覽器的開發者工具快捷鍵F12截圖在窗口中選中elements頁面,而後經過元素選擇器選中目標圖片,html代碼會自動跳到圖片的html代碼;
  2. 編寫jQuery選擇器;此時咱們已經找到目標的html代碼,如今開始找到代碼能識別的規則來獲取數據,jsoup支持jquery選擇器規則,咱們能夠作惟一測試,

截圖;在開發者工具console行裏實驗經過$(".cp_headerimg_w img")獲取的元素長度爲1,既經過.cp_headerimg_w img就能夠直接獲取咱們的目標圖片位置;git

  1. 最總咱們經過如下代碼咱們就能夠完成處理;

截圖
本次示例只是簡單找到目標,保存目標。具體代碼可參考示例代碼git地址,如今其實還有不少可優化改進的地方,下次咱們繼續。github

HttpClient

簡單說來就是如今互聯網上通訊http協議應用比較普遍 別人都用,愛用不用,擴展性好;另外java原生包提供基本的http功能,可是很差用,因此產生了HttpClient工具包。
HttpClient支持標準Http1.0/1.1;支持get,post,put,delete,head等http方法;支持https;支持http代理等等;基本上你能想到的關於http的特性,它都支持。
在本示例中,簡單使用httpclient來獲取html頁面字符串內容,後面示例會使用HttpClient的多線程,以及線程池功能。spring

jsoup

jsoup可以把html的文本內容解析成html Document,經過相似jQuery選擇器的用法,能方便的找到想要html內容。示例中要識別出http地址中的圖片地址。
TODO 配合美食節頁面, 瀏覽器查找截圖簡單說明jQuery selectorchrome

其它

注意

若是剛開始使用maven基本都會遇到一些問題:apache

  • maven編譯慢,其實都是第一次慢,由於要下不少依賴包,最好經過配置maven國內鏡像,可參考001-JAVA 基礎環境
  • 編譯莫名奇妙失敗,能夠經過確認C:\Users\xxx\.m2\repository目錄下,是否存在pom依賴,或者把對應的依賴刪掉從新maven編譯下,

例如截圖依賴是groupid:org.jsoup,artifactid:jsoup,則對應的jar目錄是截圖,既C:\Users\[xxx]\.m2\repository\[groupid]\[artifactid]\[version],指刪掉該依賴便可,不要全刪掉repository,否則其它jar也要從新下。segmentfault

相關文章
相關標籤/搜索