java編程實(shí)現(xiàn)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲示例過(guò)程
本項(xiàng)目中需要用到兩個(gè)第三方j(luò)ar包,分別為 jsoup 和 commons-io。
jsoup的作用是為了解析網(wǎng)頁(yè), commons-io 是為了把數(shù)據(jù)保存到本地。
1.爬取貼吧
第一步,打開eclipse,新建一個(gè)java項(xiàng)目,名字就叫做 pachong:

然后,新建一個(gè)類,作為我們程序的入口。

這個(gè)作為入口類,里面就寫一個(gè)main方法即可。
public class StartUp {
public static void main(String[] args) {
}
}
第二步,導(dǎo)入我們的依賴,兩個(gè)jar包:

右鍵jar包,Build path , add to Build path
接著,我們?cè)囍阉饕幌聞?dòng)漫吧的數(shù)據(jù):
https://tieba.baidu.com/f?kw=%B6%AF%C2%FE&tpl=5
public class StartUp {
public static void main(String[] args) {
String url = "https://tieba.baidu.com/f?kw=%B6%AF%C2%FE&tpl=5";
Connection connect = Jsoup.connect(url);
System.out.println(connect);
}
}
如果能夠成功打印出來(lái)鏈接,說(shuō)明我們的連接測(cè)試是成功的!

然后,我們調(diào)用connect的get方法,獲取鏈接到的數(shù)據(jù):
Document document = connect.get();

這邊需要拋出一個(gè)異常,而且是強(qiáng)制性的,因?yàn)橛锌赡軙?huì)獲取失敗。這邊我們直接拋出去,不去捕獲。
public class StartUp {
public static void main(String[] args) throws IOException {
String url = "https://tieba.baidu.com/f?kw=%B6%AF%C2%FE&tpl=5";
Connection connect = Jsoup.connect(url);
System.out.println(connect);
Document document = connect.get();
System.out.println(document);
}
}
打印出來(lái)的結(jié)果:

可見,document對(duì)象裝的就是一個(gè)完整HTML頁(yè)面。
在這里,我們想要拿到的第一個(gè)數(shù)據(jù),就是所有帖子的標(biāo)題:
我們發(fā)現(xiàn),每一個(gè)標(biāo)題都是一個(gè)a連接,class為j_th_tit 。
下一步我們就考慮獲取所有class為 j_th_tit 的元素。

我們發(fā)現(xiàn),document對(duì)象給我們提供了 getElementsByClass 的方法,顧名思義,就是獲取class為 XXX 的元素。
Elements titles = document.getElementsByClass("j_th_tit");
接著,遍歷titles,打印出每一個(gè)標(biāo)題的名稱:
for (int i = 0; i < titles.size(); i++) {
System.out.println(titles.get(i).attr("title"));
}
當(dāng)前代碼:
import java.io.IOException;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class StartUp {
public static void main(String[] args) throws IOException {
String url = "https://tieba.baidu.com/f?kw=%B6%AF%C2%FE&tpl=5";
Connection connect = Jsoup.connect(url);
Document document = connect.get();
Elements titles = document.getElementsByClass("j_th_tit");
for (int i = 0; i < titles.size(); i++) {
System.out.println(titles.get(i).attr("title"));
}
}
}
以上就是java編程實(shí)現(xiàn)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲示例過(guò)程的詳細(xì)內(nèi)容,更多關(guān)于java實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Java 使用maven實(shí)現(xiàn)Jsoup簡(jiǎn)單爬蟲案例詳解
- Java 實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲框架詳細(xì)代碼
- 半小時(shí)實(shí)現(xiàn)Java手?jǐn)]網(wǎng)絡(luò)爬蟲框架(附完整源碼)
- 使用java實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲
- Java實(shí)現(xiàn)的爬蟲抓取圖片并保存操作示例
- java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲代碼示例
- java實(shí)現(xiàn)網(wǎng)頁(yè)爬蟲的示例講解
- java實(shí)現(xiàn)簡(jiǎn)單的爬蟲之今日頭條
- Java爬蟲 信息抓取的實(shí)現(xiàn)
- Java實(shí)現(xiàn)爬蟲
相關(guān)文章
SpringBoot可視化接口開發(fā)工具magic-api的簡(jiǎn)單使用教程
作為Java后端開發(fā),平時(shí)開發(fā)API接口的時(shí)候經(jīng)常需要定義Controller、Service、Dao、Mapper、XML、VO等Java對(duì)象。有沒(méi)有什么辦法可以讓我們不寫這些代碼,直接操作數(shù)據(jù)庫(kù)生成API接口呢?今天給大家推薦一款工具magic-api,來(lái)幫我們實(shí)現(xiàn)這個(gè)小目標(biāo)!2021-06-06
Spring Cloud @EnableFeignClients注解的屬性字段basePacka詳解
這篇文章主要介紹了Spring Cloud @EnableFeignClients注解的屬性字段basePacka詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
基于javamelody監(jiān)控springboot項(xiàng)目過(guò)程詳解
這篇文章主要介紹了基于javamelody監(jiān)控springboot項(xiàng)目過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Spring AOP 自定義注解的實(shí)現(xiàn)代碼
本篇文章主要介紹了Spring AOP 自定義注解的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
詳解BeanUtils.copyProperties()方法如何使用
這篇文章主要為大家介紹了詳解BeanUtils.copyProperties()方法如何使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
java 調(diào)用wsdl協(xié)議接口簡(jiǎn)單實(shí)用方法最新推薦
文章介紹了如何使用POM導(dǎo)入依賴,并編寫一個(gè)測(cè)試類來(lái)調(diào)用不同的Web服務(wù)接口,通過(guò)訪問(wèn)接口地址,我們可以獲取請(qǐng)求和返回的body,并進(jìn)一步解析返回的JSON結(jié)果,感興趣的朋友一起看看吧2025-03-03
PageHelper在springboot+mybatis框架中的使用步驟及原理解析
這篇文章主要介紹了PageHelper在springboot+mybatis框架中的使用步驟及原理解析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03

