2013年6月30日 星期日

Jsoup Java 網路爬蟲套件

使用Jsoup 來分析HTML頁面

使用範例:

import java.net.URL;
import java.util.Iterator;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class JsoupCrawlerUT {

public static void main(String[] args)  throws Exception{

//URL 以yahoo股票為測試
        URL url = new URL("http://tw.stock.yahoo.com/q/q?s=2002");
        
        /*
         * 向網頁伺服發出請求,並將回應分析成document。
         * 第一個參數是:請求位置與QueryString。
         * 第二個參數是:連線時間(毫秒),在指定時間內若無回應則會丟出IOException
         */       
        Document doc = Jsoup.parse(url, 3000);
        
        //取回所center下所有的table
        Elements tables = doc.select("center>table");
        
        Iterator iterator;
        
        //print all table 
        /*
        for(Element table : tables)
        {
            //get td Iterator
        iterator = table.select("td").iterator();           
           
            while(iterator.hasNext())
            {               
                System.out.println("data" + ": " + iterator.next().text().trim());
            }        
        } 
        */        
        System.out.println("--------------------------------------------------");        
        Element  table;
        
     //取標頭
        table = tables.get(1).select("table").get(0);        
        iterator = table.select("th").iterator();       
        while(iterator.hasNext())
        {               
            System.out.println("data" + ": " + iterator.next().text().trim());
        } 
        
        System.out.println("--------------------------------------------------");  
        
        //取內容        
        //取索引1的table
        table = tables.get(1).select("table").get(1);
        
        //get td Iterator
     iterator = table.select("td").iterator();       
        while(iterator.hasNext())
        {               
            System.out.println("data" + ": " + iterator.next().text().trim());
        }         
  }
}


輸出:

--------------------------------------------------
data: 股票 代號
data: 時間
data: 成交
data: 買進
data: 賣出
data: 漲跌
data: 張數
data: 昨收
data: 開盤
data: 最高
data: 最低
data: 個股資料
data: 凱基證券下單
--------------------------------------------------
data: 2002中鋼 加到投資組合
data: 14:30
data: 24.55
data: 24.50
data: 24.55
data: △0.75
data: 24,272
data: 23.80
data: 23.80
data: 24.55
data: 23.80
data: 成交明細 技術 新聞 基本 籌碼 個股健診
data: 買 賣 張 零股交易


參考文件:

1 則留言:

  1. 不好意思冒昧問一下,我對程式不是很了解但是專題需要用到
    如果用dreamweaver cs6可以用這個程式來寫嗎?
    如果可以的話是要用哪個頁面類型是JSP還是JAVA Script?

    回覆刪除