【问题标题】:Extracting specific data from a webpage-source programmatically以编程方式从网页源中提取特定数据
【发布时间】:2011-10-21 11:26:08
【问题描述】:

以下问题适用于任何编程语言

我正在开发一个程序,该程序提供网页源代码作为输入将提取某种特定类型的数据。

假设我提供了以下页面源作为程序的输入:

<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

我想使用此页面源将此数据复制到数据库。由于修复标签和类中提到了产品名称及其价格(如&lt;td&gt;&lt;div&gt; 等),我如何以编程方式提取这些数据?是否有任何好的算法/代码/库可以从页面源中提取此类数据?

我认为这可以通过在 Javascript 中使用 getElementByID 来完成。但我不确定。或者可以使用XML?如何?还有其他好的方法/算法吗?

注意:我是在自己的网站上这样做的。我已经有一个旧网站,我想使用新网站中的所有数据。再次手动输入所有数据是一项艰巨的任务。所以我想从我的旧数据中复制数据。任何编程语言都适合我。

【问题讨论】:

    标签: java php javascript html xml


    【解决方案1】:

    就用这个:http://simplehtmldom.sourceforge.net/

    顺便说一下,它叫做爬行

    【讨论】:

      【解决方案2】:

      要从 XML 文档中查询数据,您可以使用许多编程语言中可用的 xpath language。它明确地处理 XML 文档,而不是字符串。

      另一种方法是对要从中提取数据的文档进行字符串分析,并根据需要在低得多的级别上提取数据。这有时会更快,但 XPATH 更加健壮,因为它可以在标签、属性和值之间有所不同。

      通常您只需将文档转换为另一种形式,因为许多语言都提供了XSLTXQuery 的接口。

      您可以搜索的术语是 scraping,如果您正在寻找一些 PHP 资源,请查看 web-scraping-with-php,即 available in print as well

      【讨论】:

        猜你喜欢
        • 2015-03-15
        • 1970-01-01
        • 2013-10-23
        • 1970-01-01
        • 2012-10-20
        • 2010-09-28
        • 2014-08-02
        • 2021-04-18
        • 1970-01-01
        相关资源
        最近更新 更多