XML DOM 獲取節點值
714
2025-04-02
前言
電腦的硬盤突然壞了,新安裝的eclipse的代碼全沒了,后來發現杭電上已經ac的代碼可以查看到,我是個有強迫癥的人,我寧愿做很多件不同的事也不愿意做一件相同的事(復制黏貼)許多次,所以就突發奇想,做個爬蟲爬取已經ac的代碼。
實現
首先打開杭電的首頁,這里有我想要的信息
這里,解決的問題的序列號事我們想要的。查看網頁源碼
就在這里找到我們想要的信息,我們要將他存下來,然后進去分析。
接著隨便點擊一個進去分析。
對這個圖片信息,注意鏈接是有規律的,通過簡單拼湊就可以進入,注意第一個 run id這個信息,是需要分析抓取的,然后點擊code len的鏈接。
發現自己的代碼就在這。發現鏈接,就是通過run id拼湊而來。這樣思路就清晰了。
1:抓取主頁面,獲得題目號。
2:對于每個題目號,拼湊地址進入第二個界面,在分析爬取這里的run id。
3:通過run id號拼湊地址進入有代碼的網頁,在通過解析工具獲取代碼。
4:通過io傳輸傳到本地文件
5:ps(解析工具:jsoup)注意要通過f12抓取登陸過的cookie模擬登陸,因為只爬一次,就直接抓取cookie值傳入。
附上代碼:
1:抓取主頁面
import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class exercise {//爬取標題 public static void main(String[] args) throws IOException { Map map=new HashMap();//粗存id和正確的次數 String url="http://acm.hdu.edu.cn/userstatus.php?user=1315426911";//我的杭電頁面 Document doc=Jsoup.connect(url).get(); Elements links=doc.getElementsByTag("script"); Elements links1=links.attr("language", "javascript"); Element links2=links1.get(links1.size()-2); String links3=links2.html(); System.out.println(links3);//輸出p(1001,2,6);p(1003,2,16);p(1006,1,3);p(1008,1,1);p(1009,3,16);********** String value[]=links3.split(";");//獲取總共的題目數 int length=value.length; for(int i=0;i 如果對后端、爬蟲等感性趣歡迎關注我的個人公眾號交流:`bigsai`
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Java
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。