爬虫初识jsoup
學習了幾天爬蟲,發現jsoup這款工具非常好用。對于初學者解析html文件方便,可以滿足簡單的要求。首先jsoup要下載jar包,然后配置路徑添加外部jar文件。。代碼就已我的博客為例。參考jsoup中文API
Elements這個對象提供了一系列類似于DOM的方法來查找元素,抽取并處理其中的數據。具體如下:
從一個URL加載一個Document
解決方法 使用 Jsoup.connect(String url)方法:Document doc = Jsoup.connect("http://example.com/").get(); String title = doc.title(); 說明 connect(String url) 方法創建一個新的 Connection, 和 get() 取得和解析一個HTML文件。如果從該URL獲取HTML時發生錯誤,便會拋出 IOException,應適當處理。Connection 接口還提供一個方法鏈來解決特殊請求,具體如下:Document doc = Jsoup.connect("http://example.com").data("query", "Java").userAgent("Mozilla").cookie("auth", "token").timeout(3000).post(); 這個方法只支持Web URLs (http和https 協議); 假如你需要從一個文件加載,可以使用 parse(File in, String charsetName) 代替。 import java.io.IOException;import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements;public class test {public static void main(String[] args) throws IOException{String url="https://blog.csdn.net/qq_40693171";Document doc=Jsoup.connect(url).get();// System.out.print(doc.html());//獲取整個頁面的htmlElements links1=doc.select("a");// System.out.println(links1);//將輸出系列a開頭<a href="https://blog.csdn.net/qq_40693171">好求窈窕</a>等等Elements links2=doc.select("a[onclick]");// System.out.println(links2);//輸出有onclick選項的內容//<a href="https://blog.csdn.net/qq_40693171/article/details/79695414#comments" title="評論次數" οnclick=********>Elements links3=doc.select("a[href]");System.out.println(links3);//輸出a開頭且擁有href標簽的內容//<a href="https://blog.csdn.net/qq_40693171?viewmode=contents"><span onclickElement links4=doc.getElementById("popuLayer_js_q");//;按照id選取,因為id只有一個,所以這個links4為element//System.out.print(links4);Elements links5=doc.getElementsByClass("panel_body itemlist");//閱讀排行//System.out.println(links5);輸出我博客的閱讀排行欄目Elements links6=doc.getElementsByTag("script");//按照標簽 比如<a href**>的a <script src=**>的script標簽//System.out.println(links6);//<script src="https://csdnimg.cn/pubfooter/js/publib_footer-1.0.3.js?v201804111810" type="text/javascript"></script>/** 假設要輸入所有鏈接* 上面只是初步選取,仍然不是最終想要的內容*/for(Element link:links3)//遍歷數組{String a1=link.attr("href");//每個元素都有鏈接的屬性href="https" 操作就像是hasmap一樣的映射關系。System.out.print(a1);//https://blog.csdn.net/qq_40693171String a2=link.text();System.out.println(a2);//好求窈窕 ***}} }輸出:
- 如果對后端、爬蟲等感性趣歡迎關注我的個人公眾號交流:bigsai
總結
- 上一篇: 杭电1044java实现dfs bfs
- 下一篇: 爬取虎牙之一:(王者荣耀主播信息普通爬取