1. 程式人生 > >java 爬蟲簡單介紹

java 爬蟲簡單介紹

http連線請求

進行http請求時,根據需要設定request header,不同網站的頭部設定不一樣,要利用F12進行檢視。

靜態頁面爬取

通過http get 請求獲取頁面的Document物件:
Document doc = Jsoup.connect(url).get();
然後就可用css選擇器進行元素的選擇,如以下示例:
1) Id=”shangbiaolist”的元素選擇:
Elements shangbiaoList = doc.select(“#shangbiaolist”);
或者 Element shangbiaolist = doc.getElementById(“shangbiaolist”)
2) Div塊的選擇對應結構選擇:
Elements elements = doc.select(“div.panel-body a:eq(0)”);
3)獲取元素內的html文字:
Element.html()
4)獲取元素的屬性值:
Element.attr(“href”)

以企查查為例:

實際網頁:

執行結果:

動態頁面爬取

1)利用三方軟體phantomjs進行頁面的捕獲

步驟2. 獲取對應頁面資訊:
程式碼示例:

頁面為:

執行結果為:

//獲取元素的資訊
WebElement.getText();//html文字內容
WebElement.getAttribute(“href”);//元素的屬性值
WebElement.findElement(By by);//在該元素下查詢內容

步驟3. 自動獲取區域性分頁資訊 或者 獲取彈出框的資訊:
/獲取到該彈出框彈出的元素
WebElement e4 = e1.findElement(By.cssSelector(“a”));
e4.click();
//然後等待modalSleep毫秒,再對分頁內容 或者 彈出框進行元素獲取
Thread.sleep(modalSleep);

2)利用三方框架htmlunit 進行爬取
程式碼示例:

頁面為:

執行結果為:

相關推薦

java 爬蟲簡單介紹

http連線請求 進行http請求時,根據需要設定request header,不同網站的頭部設定不一樣,要利用F12進行檢視。 靜態頁面爬取 通過http get 請求獲取頁面的Document物件: Document doc = Jso

網絡爬蟲簡單介紹(python)

我們 大型 搜索 () 介紹 面積 截取 困難 狀況 一、簡介 爬蟲就是利用代碼大量的將網頁前端代碼下載下來使用的一種程序,一般來說常見的目的為下: 1、商業分析使用:很多大數據公司都會從利用爬蟲來進行數據分析與處理,比如說要了解廣州當地二手房的均價走勢就可以到房屋中介的網

關於java知識簡單介紹

Java特點 Java語言: Java語言的語法與C語言和C++語言很接近,使得大多數程式設計師很容易學習和使用。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符過載、多繼承、自動的強制型別轉換。特別地,Java語言不使用指標,而是引用。並提供了自動的廢料收集

Java--JVM簡單介紹

前言 在之前的程式設計中,針對不同的電腦系統開發,需要用到不同的程式語言,比如在Winwods系統中使用C++編寫Winwods版本的微信,在Linux系統中用C編寫Linux版本的微信,在Mac系統中用Objective編寫Mac版本的微信,同樣開發微信,但

Java堆疊簡單介紹

1. 棧(stack)與堆(heap)都是Java用來在Ram中存放資料的地方。與C++不同,Java自動管理棧和堆,程式設計師不能直接地設定棧或堆。  2. 棧的優勢是,存取速度比堆要快,僅次於直接位於CPU中的暫存器。但缺點是,存在棧中的資料大小與生存期必須是確定的,缺

java 爬蟲 簡單的圖片爬取

用java爬取圖片需要匯入jsoup的jar包,感覺爬蟲挺有意思的,做出來跟大家分享一下!  import java.io.File; import java.net.URL; import org.apache.commons.io.FileUtils; import

<java>枚舉的簡單介紹

pic spi str spa 枚舉類 lee string line 舉例 1.枚舉,enum關鍵字,相當於public final static. 2.舉例: 首先定義了一個名為spiciness的枚舉類型。 public enum Spiciness {

Brief introduction to Java String Split 【簡單介紹Java String Split】

a-z include cte eve class some sim string arr Split is a common function in Java. It split a full string to an array based on delimeter.

Java靜態檢測工具/Java代碼規範和質量檢查簡單介紹(轉)

pub 詳細 職責 web 循環 問題: 集成 死鎖 參考 靜態檢查: 靜態測試包括代碼檢查、靜態結構分析、代碼質量度量等。它可以由人工進行,充分發揮人的邏輯思維優勢,也可以借助軟件工具自動進行。代碼檢查代碼檢查包括代碼走查、桌面檢查、代碼審查等,主要檢查代碼和設計的一致

Java學習筆記2(輸入與隨機數簡單介紹

args image public 數據類型 system double next class gpo 輸入: import java.util.Scanner; public class ScannerDemo{   public static void main(Str

Java學習筆記43(打印流、IO流工具類簡單介紹

println comm 學習筆記 dir puts str lose tof line 打印流: 有兩個類:PrintStream,PrintWriter類,兩個類的方法一致,區別在於構造器 PrintStream:構造方法:接收File類型,接收字符串文件名,接收字節輸

[Java並發編程] 並發容器框架的簡單介紹

java並發編程 並發容器 同步容器 線程安全 三軍可奪帥也,匹夫不可奪誌也。———《論語》上一篇講到同步容器類的潛在問題,可以通過兩個方法解決。可以通過客戶端加鎖解決。可以使用並發容器類來解決問題。客戶端加鎖的方法我們已經知道,所以,這一篇介紹一下並發容器類原理,看它是如何解決這些問題的。下

java中String、StringBuffer和StringBuilder的區別(簡單介紹)

情況 string 建議 code serializa 就是 同步 安全性 之間 簡單介紹 java中用於處理字符串常用的有三個類: 1、java.lang.String 2、java.lang.StringBuffer 3、java.lang.StrungBuilder

java隨機數Reandom(簡單介紹)

clas rand tint 隨機數生成 math number 數字 style 兩個 簡單介紹 Java中存在著兩種Random函數 一、java.lang.Math.Random;   調用這個Math.Random()函數能夠返回帶正號的double值,該值大於等於

Java String的簡單介紹

轉換 tin com .com ava 技術分享 其他 width 構造方法 一.String類的構造方法(先粗略介紹三種 分別是s1,s2,s3)    二.String的常用判斷方法    三.String類的常用獲取方法 三.Sting的常用轉換方法

java註解的簡單介紹

什麼是註解 1.註解就是Annontation,Annontation是Java5開始引入的新特徵,中文名稱叫做註解,它提供了一種安全的類似註釋的機制,可以起到減少配置的成果,給程式起到輔助性的作用 註解有什麼用處 1.註解可以生成文件 2.註解可以逐漸替代配置 3.在編譯時進行格式檢查 註解的原

java中陣列的簡單介紹

1.什麼是陣列? 陣列就是把相同的資料型別的資料,按照順序,組合成的複合資料型別。 在這個概念中有三個關鍵詞語1.相同的資料型別,2.順序,3.複合資料型別;這三個關鍵字詞語就組成了陣列的概念。 陣列的作用就是用來儲存多個數據型別相同的資料,換句話說就是把相同資料型別的資料組織在一起統一管理。

簡單介紹Java String Methods(下)

Java String replace() 此方法在用新字元替換字串的前一個字元後返回一個新字串。這個方法是從JDK 1.5中新增的,使替換字串中的字元更加容易。 public class ReplaceTest { public static void main(String args[]) {

java面試題之簡單介紹一下集合框架

klist linklist lin key 很多 array 們的 簡單 數據存儲 集合框架分為三塊:List列表、Set集合、Map映射 List列表在數據結構上可以被看做線性表,常用的有ArrayList和LinkList(不常用的有Vector(類似於Arra

Java簡單介紹Java生態

核心思想:面向物件程式設計,繼承,高相容(程式碼移植性強),避免重複造輪子,開源.   Java的起源和發展細節就不介紹了,Java是高階開發語言,類似C++,語法和C++ 有很多類似之處,但是做了些優化,主要是在編碼寫程式上的優化,避免記憶體洩露,避免指標複雜錯用等,Java中不可以直接操作指標,被隱藏。