java編程實現簡單的網絡爬蟲示例過程
本項目中需要用到兩個第三方jar包,分別為 jsoup 和 commons-io。
jsoup的作用是為瞭解析網頁, commons-io 是為瞭把數據保存到本地。
1.爬取貼吧
第一步,打開eclipse,新建一個java項目,名字就叫做 pachong:
然後,新建一個類,作為我們程序的入口。
這個作為入口類,裡面就寫一個main方法即可。
public class StartUp { public static void main(String[] args) { } }
第二步,導入我們的依賴,兩個jar包:
右鍵jar包,Build path , add to Build path
接著,我們試著搜索一下動漫吧的數據:
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); } }
如果能夠成功打印出來鏈接,說明我們的連接測試是成功的!
然後,我們調用connect的get方法,獲取鏈接到的數據:
Document document = connect.get();
這邊需要拋出一個異常,而且是強制性的,因為有可能會獲取失敗。這邊我們直接拋出去,不去捕獲。
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); } }
打印出來的結果:
可見,document對象裝的就是一個完整HTML頁面。
在這裡,我們想要拿到的第一個數據,就是所有帖子的標題:
我們發現,每一個標題都是一個a連接,class為j_th_tit 。
下一步我們就考慮獲取所有class為 j_th_tit 的元素。
我們發現,document對象給我們提供瞭 getElementsByClass 的方法,顧名思義,就是獲取class為 XXX 的元素。
Elements titles = document.getElementsByClass("j_th_tit");
接著,遍歷titles,打印出每一個標題的名稱:
for (int i = 0; i < titles.size(); i++) { System.out.println(titles.get(i).attr("title")); }
當前代碼:
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編程實現簡單的網絡爬蟲示例過程的詳細內容,更多關於java實現網絡爬蟲的資料請關註WalkonNet其它相關文章!,希望大傢以後多多支持WalkonNet!