日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用java爬取杭电oj已ac代码

發布時間:2025/3/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用java爬取杭电oj已ac代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

電腦的硬盤突然壞了,新安裝的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`</li> 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的用java爬取杭电oj已ac代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。