java爬蟲--jsoup簡單的表單抓取案例
阿新 • • 發佈:2019-02-20
分析需求:
某農產品網站的農產品價格抓取
頁面展示如上:
標籤展示如上:
分析發現每日價格行情包括了蔬菜,水果,肉等所有的資訊,所以直接抓每日行情的內容就可以實現抓取全部資料。
軟體環境:eclipse,Jsoup包
密碼:bmrr
抓取表單比較簡單,直接用select選擇標籤即可。
實現:
完整程式碼如下:
package com.jsoup; import java.io.BufferedWriter; import java.io.FileWriter; 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 Shichang { public static void main(String[] args) throws IOException { String url = ""; Document doc=null; BufferedWriter bw = null; //檔案輸出路徑 String path="f:\\cai.txt"; for (int i = 1; i <= 10; i++) { url = "http://www.xinfadi.com.cn/marketanalysis/0/list/" + i + ".shtml"; //測試用的url // url = "http://www.xinfadi.com.cn/marketanalysis/0/list/1.shtml"; //模擬瀏覽器 doc = Jsoup.connect(url) .userAgent( "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31") .timeout(6000 * 1000).get(); //找到名為hq_table的table Elements el = doc.select("table.hq_table"); // System.out.println(el); //遍歷hq_table中的tr for (Element el2 : el) { Elements el3 = el2.select("tr.tr_color"); //遍歷tr中的td for (Element el4 : el3) { Elements el5 = el4.select("td"); String rs = el5.text().toString().replace(" ", "\t"); //輸出到控制檯 System.out.println(rs); //輸出到本地檔案 bw = new BufferedWriter(new FileWriter(path,true)); bw.write(rs); bw.newLine(); bw.flush(); bw.close(); } } } } }