jsoup入門

jsoup是一款Java的HTML解析器,主要用來對HTML解析。官網   中文文檔html

可直接解析某個URL地址、HTML文本內容。它提供了一套很是省力的API,可經過DOM,CSS以及相似於jQuery的操做方法來取出和操做數據。java

jSOUP主要功能

  1. 從一個URL,文件或字符串中解析HTML;
  2. 使用DOM或CSS選擇器來查找、取出數據;
  3. 可操做HTML元素、屬性、文本

例子:下載一個網站上的圖片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);
            }
        }
    }
}
相關文章
相關標籤/搜索