1. 程式人生 > >java 爬蟲

java 爬蟲

能夠 有一個 人人網 匹配 掌握 key val width pcl

由於項目需求,綜合了幾種考慮方案,準備使用java 爬蟲進行數據的獲取,不用自己去費勁的想邏輯的實現

使用java爬蟲之前,我們必須要掌握的知識:

         1. 對前端HTML的元素有一定的認識

         2. 使用httpclient

         3. jsoup 工具進行HTML的解析判斷

         4. 能夠使用一款網絡抓包工具

抓包工具的使用請參考:https://www.cnblogs.com/miantest/p/7289694.html

jsoup 的api的地址:http://www.open-open.com/jsoup/attributes-text-html.htm -->語法規則只要會HTML元素屬性,jquery,javascript 就會玩它

  介紹幾個常用的吧:  

1.將抓取到的html文本轉為JSOUP 可操作的Document

Document doc=Jsoup.parse(你的html文本);

2.select 元素的使用(有很多哦):註意點是只有屬性才會被[]括起來,都可以進行混合使用的如select("div#id")

doc.select("a[target][title]") -------> 匹配 a 標簽下的 帶有target 和 title 屬性的標簽

doc.select("div") ------------>標簽名查找,匹配所有帶div標簽的元素

doc.select("[title]") --------->屬性查找,匹配屬性帶有title的元素

doc.select(".classname")-------->class名稱查找,匹配class 名稱為classname的元素

doc.select("#id")-----------> id查找,匹配id 名為id的元素

doc.select("[title=鬥圖網? RSS Feed]")-------->利用屬性值進行查找,匹配title=
鬥圖網? RSS Feed 的元素


3.獲取屬性值與文本的方法

element.attr("name") ------->獲取元素中的name屬性值

element.text()
element.html()----------->獲取元素的文本內容

4.也有很多我們javascript操作元素的選擇器

.getElementById(); -----id 查

.getElementsByClass(); -----class 查

.getElementsByAttribute();------屬性查

.getElementsByAttributeValue(key, value) -------屬性值查


..........等等,次數省略一萬字

pom依賴導入:

   是為了讓我們方便快捷的操作HTML中的元素

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.11.2</version>
</dependency>

httpclient :可以讓我們便捷的進行post 與get 的請求方式

  我們現在進行爬去人人網獲取人人網的數據

      ----1.首先我們先進行人人網的模擬登陸

       (1),分析人人網的登錄表單,可以看出來,內部有一個唯一ID loginForm ,action 地址,以及post的請求方式,以及我們需要的賬號密碼框

     技術分享圖片

      (2).知道這個後,我們就可以通過java 代碼的形式進行數據的抓取與提交,實現登錄的效果

      

java 爬蟲