關於Jsoup 抓取精準資料的幾種用法
需要使用的是jsoup-1.7.3.jar包 如果需要看文件我下載請借一步到官網:http://jsoup.org/
最近需要用到jsoup,由於是第一次接觸,就好好學習了一下在網上搜集了一下簡單的demo,感覺入手也挺快的,他的功能主要是獲取html頁面的內容。
找到demo之後發現跟自己需要的有些出入,就修改成自己需要的樣子。話不多說,貼一下Java工程的測試程式碼 。
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.junit.Test;
public class JsoupTest {
static String url="http://www.cnblogs.com/zyw-205520/archive/2012/12/20/2826402.html";
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
//BolgBody();
//article();
Blog();
}
/**
* 獲取指定HTML 文件指定的body
* @throws IOException
*/
private static void BolgBody() throws IOException {
// 直接從字串中輸入 HTML 文件
String html = "<html><head><title> 開源中國社群 </title></head>"
+ "<body><p> 這裡是 jsoup 專案的相關文章 </p></body></html>";
Document doc = Jsoup.parse(html);
System.out.println("獲取給定的html中的body中的內容"+doc.body().text());
// 從 URL 直接載入 HTML 文件
Document doc2 = Jsoup.connect(url).get();
String title = doc2.body().text();
System.out.println("獲取url中的body中的內容"+title);
}
/**
* 獲取部落格上的文章標題和連結
*/
public static void article() {
Document doc;
try {
doc = Jsoup.connect("http://www.cnblogs.com/zyw-205520/").get();
//獲取class為postTitle的div中的內容
Elements ListDiv = doc.getElementsByAttributeValue("class","postTitle");
for (Element element :ListDiv) {
Elements links = element.getElementsByTag("a");
for (Element link : links) {
String linkHref = link.attr("href");
String linkText = link.text().trim();
System.out.println("連結:"+linkHref);
System.out.println("文字:"+linkText);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 獲取指定部落格文章div中的內容
*/
public static void Blog() {
try {
Document doc = Jsoup.connect("http://www.cnblogs.com/zyw-205520/archive/2012/12/20/2826402.html").get();
Elements ListDiv = doc.getElementsByAttributeValue("class","postBody");
System.out.println("111111111111111111"+ListDiv.text().trim());
for (Element element :ListDiv) {
System.out.println("222222222222222222222"+element.text().trim());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
由於時間問題就不多寫了,有問題的可以留言。
第一次寫文,萌新。
相關文章
- 關於AI、關於chatGPT的幾十種用法AIChatGPT
- Shell 中 $ 關於指令碼引數的幾種用法指令碼
- 關於資料抓取很多新人的誤區
- 關於廣告精準投放的資料分析專案——用MYSQL實現MySql
- 聯通/電信/移動/大資料精準抓取到底精不精準,我來告訴你實際內幕大資料
- 資料分析 | 基於智慧標籤,精準管理資料
- 關於成立英語資料抓取組的倡議
- 爬取網頁後的抓取資料_3種抓取網頁資料方法網頁
- Iterator模式的幾種用法模式
- 【轉】C#中base關鍵字的幾種用法C#
- 關於Shell 的幾個冷門資料
- 關於大資料的幾個小故事大資料
- 模型事件幾種用法模型事件
- PostgreSQL 資料庫中 DISTINCT 關鍵字的 4 種用法SQL資料庫
- 資料庫SQL語句中關於explain關鍵字的用法資料庫SQLAI
- 基於大資料的精準營銷與應用場景大資料
- 關於資料匯入,教你幾招
- 關於Android的幾種事件處理Android事件
- 關於資料倉儲成功的評價標準
- Oracle資料庫的幾種啟動和關閉方式Oracle資料庫
- 資料庫Delete的多種用法資料庫delete
- php抓取頁面的幾種方法詳解PHP
- java定時器的幾種用法Java定時器
- 如何精準識別主資料?
- 關於資料庫查詢業務的幾點思考資料庫
- 關於Oracle 資料庫備份的幾個概念Oracle資料庫
- “搭子”社交:一種特定情境下的精準陪伴關係
- 關於java獲取本地ip的幾種方法Java
- 關於Oracle資料庫與MySQL資料庫的幾點區別Oracle資料庫MySql
- 關聯式資料庫的幾種設計正規化資料庫
- Express 提交資料的幾種方式Express
- 大資料分析的幾種方法大資料
- 關於BSS資料化轉型的幾點討論
- [Vuex系列] - 細說state的幾種用法Vue
- python幾種裝飾器的用法Python
- Java for迴圈的幾種用法詳解Java
- c++中&符號的幾種用法C++符號
- Java隨機數的幾種有趣用法Java隨機