jsoup是一款Java的HTML解析器,主要用來對HTML解析。官網 中文文檔html
可直接解析某個URL地址、HTML文本內容。它提供了一套很是省力的API,可經過DOM,CSS以及相似於jQuery的操做方法來取出和操做數據。java
例子:下載一個網站上的圖片node
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; /** * 利用Java實現搜索引擎爬蟲技術 * * @version v1.0 */ public class Test { /** * 根據圖片的url地址,下載圖片到服務器 * * @param filepath * 文件存放路徑 * @param imageUrl * 圖片url * @return void */ public static void downImage(String filepath, String imageUrl) { String fileName = imageUrl.substring(imageUrl.lastIndexOf("/")); // 建立一個文件目錄 try { File files = new File(filepath); if (!files.exists()) { files.mkdirs(); } // 獲取下載連接 URL url = new URL(imageUrl); // 鏈接網絡地址 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // 獲取鏈接的輸出流 InputStream is = connection.getInputStream(); // 建立文件 File file = new File(filepath + fileName); // 創建輸入流,寫入文件 FileOutputStream fos = new FileOutputStream(file); int temp = 0; while ((temp = is.read()) != -1) { fos.write(temp); } is.close(); fos.close(); } catch (Exception e) { e.printStackTrace(); } } // Java入口 public static void main(String[] args) { // 解析源代碼 Document document = null; try { document = Jsoup.connect("http://news.163.com/18/0306/13/DC7GIBMB000187VE.html").get(); } catch (IOException e) { e.printStackTrace(); } // 獲取全部圖片的地址<img src="" alt="" width="" height=""/> Elements elements = document.getElementsByTag("img"); for (Element element : elements) { String imgSrc = element.attr("src"); System.out.println("網絡圖片的地址:" + imgSrc); if (!"".equals(imgSrc) && imgSrc.startsWith("http://")) { System.out.println("正在批量下載圖片..." + imgSrc); downImage("C:\\Users\\shay_deng\\Desktop\\下載圖片測試", imgSrc); } } } }