2013-06-01 63 views
-1

我正在嘗試構建一個程序,該程序可以從網站獲取頁面源代碼並僅存儲代碼段。使用掃描儀進行特定數據挖掘

package Program; 

import java.net.*; 
import java.util.*; 

public class Program { 
public static void main(String[] args) { 
    String site = "http://www.amazon.co.uk/gp/product/B00BE4OUBG/ref=s9_ri_gw_g63_ir01?pf_rd_m=A3P5ROKL5A1OLE&pf_rd_s=center-5&pf_rd_r=0GJRXWMKNC5559M5W2GB&pf_rd_t=101&pf_rd_p=394918607&pf_rd_i=468294"; 
    try { 
     URL url = new URL(site); 
     URLConnection connection = url.openConnection(); 
     connection.connect(); 
     Scanner in = new Scanner(connection.getInputStream()); 
     while (in.hasNextLine()) { 
      System.out.println(in.nextLine()); 
     } 
    } catch (Exception e) { 
     System.out.println(e); 
    } 
} 
} 

到目前爲止,這隻會在輸出中顯示代碼。我希望程序能夠搜索特定的字符串並只顯示價格。 例如

<tr id="actualPriceRow"> 
<td id="actualPriceLabel" class="priceBlockLabelPrice">Price:</td> 
<td id="actualPriceContent"><span id="actualPriceValue"><b class="priceLarge">£599.99</b></span> 
<span id="actualPriceExtraMessaging"> 

搜索class="priceLarge">,只顯示/存儲599.99

我知道有在網站上,但是我真的不明白任何PHP和想一個Java解決方案類似的問題,雖然任何解決方案是值得歡迎:)

+1

那麼,什麼有你在尋找價格試過嗎?你有什麼麻煩? –

+5

儘管你可以用正則表達式來做到這一點,但你應該真的使用xml/html解析庫。學習如果您對網絡編程感興趣,將來會爲您節省大量工作 – greedybuddha

+2

既然這是HTML,也許您會更容易使用jsoup。 – fge

回答

0

你可以使用一些庫來解析例如。 Jsoup

Document document = Jsoup.connect("http://www.amazon.co.uk/gp/product/B00BE4OUBG/ref=s9_ri_gw_g63_ir01?pf_rd_m=A3P5ROKL5A1OLE&pf_rd_s=center-5&pf_rd_r=0GJRXWMKNC5559M5W2GB&pf_rd_t=101&pf_rd_p=394918607&pf_rd_i=468294").get(); 

,那麼你可以搜索混凝土構件

Elements el = document.select("b.priceLarge"); 

,然後你可以得到這個元素的內容,如

String content = el.val(); 
0

的OP的問題編輯寫道:

謝謝大家的回覆,這真的是他lpful這裏是答案:

package Project; 
import java.io.IOException; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 

public class Project { 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 

    Document doc; 
    try { 
     doc = Jsoup.connect("url of link").get(); 
     String title = doc.title(); 
     System.out.println("title : " + title); 
     String pricing = doc.getElementsByClass("priceLarge").text(); 
     String str = pricing; 
     str = str.substring(1); 
     System.out.println("price : " + str); 
    } catch (Exception e) { 
     System.out.println(e); 
    } 
} 
} 
+0

([[在編輯問題中回答並轉換爲社區wiki](http://meta.stackoverflow.com/questions/267434/what-is-the-woole-action-when-the-answer-to-a-問題 - 被添加到所述闕)) –