2012-06-09 46 views
1

我正在嘗試做一些html解析。 我正在處理一些非常動態的數據,而我的來源差別很大。 如果要更具體,我試圖解析產品信息,包括 名稱,價格和描述,我不提前知道的網頁。根據兩個元素之間的距離解析html

在整個這些頁面中,唯一基本信息保持不變的是頁面標題 它們的名稱是我查詢的項目(它們都是相互匹配的)和價格。 在不同網站中保持相同的唯一真實邏輯是不同信息集之間的接近程度。 因此,價格標籤將接近產品名稱並接近其描述。

我正在尋找一個html解析器,它能夠根據不同html標籤之間的像素距離縮小我的解析範圍。

你知道這樣的圖書館嗎? 有沒有其他辦法可以嘗試解決這個問題?

編輯:

語言,操作系統和分辨率不會改變。 你知道哪些工具可以幫助解決這個問題? 如果我找到一個足夠好的庫,我可能會決定更改我的底層操作系統和語言。

+2

所以你不想解析HTML,你想解析一個「渲染的網頁」,是否正確?我的問題是:什麼操作系統,什麼瀏覽器,什麼顯示和什麼分辨率? –

+1

你有多少來源?手動定義包含所需信息的元素的類/ id名稱是否可行? –

+0

好問題,假設用戶輸入分辨率作爲參數。而對於操作系統,windows \ mac,對我來說確實不是很好。 – vondip

回答

1

的項目的價格通常是由一個特定的特殊字符,表示貨幣相同的標記內如在例如顯示該值的標記preceeded:

<div class="product_value">£ 10.99</div> 
<div class="product_value">¥ 10.99</div> 
<div class="product_value">$ 10.99</div> 

假設你使用搜索API諸如google或bing來獲取包含特定產品名稱的頁面列表,然後打開該頁面的一個簡單的正則表達式語句將能夠檢索貨幣標記(£,$,¥等)和div或跨度的結尾之間的所有內容。

但是,如果搜索結果拋出包含多個產品或多個價格標記的頁面,那麼該系統可能無法像預期的那樣工作。唯一可以肯定的方式是爲每個站點編寫單獨的刮板例程,或者嘗試和刮擦某些人員的比較服務。