關於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
- 聯通/電信/移動/大資料精準抓取到底精不精準,我來告訴你實際內幕大資料
- 資料分析 | 基於智慧標籤,精準管理資料
- 關於Shell 的幾個冷門資料
- 關於Android的幾種事件處理Android事件
- PostgreSQL 資料庫中 DISTINCT 關鍵字的 4 種用法SQL資料庫
- 資料庫SQL語句中關於explain關鍵字的用法資料庫SQLAI
- 關於資料匯入,教你幾招
- 資料庫Delete的多種用法資料庫delete
- python幾種裝飾器的用法Python
- [Vuex系列] - 細說state的幾種用法Vue
- “搭子”社交:一種特定情境下的精準陪伴關係
- Express 提交資料的幾種方式Express
- 大資料分析的幾種方法大資料
- 關於資料庫查詢業務的幾點思考資料庫
- 關於BSS資料化轉型的幾點討論
- 如何精準識別主資料?
- 關於python單例的常用幾種實現方法Python單例
- 關於最小迴圈節的幾種求法[原創]
- 公告:關於精準測試一些雜事
- 個人使用Kotlin的幾種習慣用法Kotlin
- 大資料實現精準營銷策略有哪幾個方面?_光點科技大資料
- 遍歷資料夾的幾種方式
- 【詳細】關於Android上傳檔案的幾種方式Android
- 基於HTTP協議的幾種實時資料獲取技術HTTP協議
- 用於資料科學的幾種Python裝飾器介紹 - Bytepawn資料科學Python
- 關於STM324的一些實驗的準備資料
- vue中 關於$emit的用法VueMIT
- 關於JavaScript中arguments的用法JavaScript
- sqlplus連線資料庫的幾種方法SQL資料庫
- 常用的幾種大資料架構剖析大資料架構
- SpringBoot讀取配置資料的幾種方式Spring Boot
- 幾種常見的Python資料結構Python資料結構
- 資料庫SQL調優的幾種方式資料庫SQL
- 淺談資料備份的幾種方案
- MySql資料庫備份的幾種方式MySql資料庫