2011-08-06 135 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