2011-08-06 49 views
1

以下問題適用於任何編程語言從網頁源中提取特定的數據編程

我上的程序工作,其上提供的網頁源代碼作爲輸入,將提取出一些特定類型的數據。

假設我提供了以下頁面源輸入到我的程序:

<table> 
    <tr> 
     <td id="a" class="product-name">Product A</td> 
     <td id="1" class="product-price">$100</td> 
    </tr> 

    <tr> 
     <td id="b" class="product-name">Product B</td> 
     <td id="2" class="product-price">$200</td> 
    </tr> 

    <tr> 
     <td id="c" class="product-name">Product C</td> 
     <td id="3" class="product-price">$300</td> 
    </tr> 
</table 

在該網頁上,有與他們的銷售價格以及提到的產品。網頁看起來像這樣:

Product A: $100 
Product B: $200 
Product C: $300 

我想使用此頁面源將此數據複製到數據庫。由於產品名稱及其價格在修復標籤和類(如<td><div>等)中提及,我如何以編程方式提取這些數據?有沒有什麼好的算法/代碼/庫從頁面源中提取這些數據?

我認爲這可以通過在Javascript中使用getElementByID來完成。但我不確定。或者可以使用XML?怎麼樣?任何其他好的方法/算法?

注意:我這樣做到我自己的網站。我已經有一箇舊網站,我想用我的新數據中的所有數據。再次手動輸入所有數據是一項艱鉅的任務。所以我想複製我的舊數據。任何編程語言都適合我。

回答

2

要從XML文檔查詢數據,您可以使用許多編程語言中可用的xpath language。它明確地處理XML文檔,而不是字符串。

另一種方法是對要從中提取數據的文檔進行字符串分析,並在較低級別上根據需要提取數據。這有時會更快,但XPATH更加健壯,因爲它可以在標籤,屬性和值之間有所不同。

通常情況下,您只需要將文檔轉換爲另一種格式,因爲這種語言提供了一個接口,可以連接到XSLTXQuery

你可以搜索詞語是scraping,如果你正在尋找一些資源,PHP,結賬web-scraping-with-php這是available in print as well