【问题标题】:HTML Scraping in Php [duplicate]PHP中的HTML抓取[重复]
【发布时间】:2010-09-07 05:47:00
【问题描述】:

我一直在使用正则表达式在 PHP 中进行一些 HTML 抓取。这行得通,但结果是挑剔和脆弱的。有没有人使用过任何提供更强大解决方案的软件包?配置驱动的解决方案是理想的,但我并不挑剔。

【问题讨论】:

  • 看看this线程 - 问题进入了类似的方向

标签: php html screen-scraping


【解决方案1】:

在您从页面中抓取 HTML 之后,我会推荐 PHP Simple HTML DOM Parser。它支持无效的 HTML,并提供了一种非常简单的方法来处理 HTML 元素。

【讨论】:

【解决方案2】:

如果您正在抓取的页面是有效的 X(HT)ML,那么 PHP's built-in XML parsers 中的任何一个都可以。

我在用于抓取的 PHP 库方面没有取得多大成功。如果你喜欢冒险,你可以试试simplehtmldom。我推荐Hpricot 用于Ruby 或Beautiful Soup 用于Python,它们都是优秀的 HTML 解析器。

【讨论】:

  • 如果您要解析特别草率的 HTML,请确保不要使用 BeautifulSoup 3.1.x(使用 3.0.x)。 3.1.x 使用 htmllib 作为其解析器,这比 3.0.x 使用 sgmllib 的宽容度要低得多。
【解决方案3】:

上面提到的Simple Html DOM Parser 的结果也非常好。还有tidy Extension for PHP,它也非常好用。

【讨论】:

    【解决方案4】:

    htmlSQL 一起工作让我很开心,这不是一个高端解决方案,但使用起来非常简单。

    【讨论】:

    • 迟到的评论,但我刚刚通过谷歌找到了你的答案。我喜欢它! :)
    • 现在对你有用吗?它似乎对我不起作用......
    【解决方案5】:

    使用 PHP 进行 HTML 抓取,我推荐 cURL + regexp 或 cURL + 一些 DOM 解析器,尽管我个人使用 cURL + regexp。如果您对正则表达式有深刻的了解,它实际上有时会更准确。

    【讨论】:

      【解决方案6】:

      我还推荐“简单的 HTML DOM 解析器”。这是一个不错的选择,特别是如果您熟悉 jQuery 或 JavaScript 选择器,那么您会发现自己很熟悉。

      I have even blogged about it in the past.

      【讨论】:

        【解决方案7】:

        我必须在主机 1and1 上使用 curl。

        http://www.quickscrape.com/ 是我使用 Simple DOM 类想出的!

        【讨论】:

          猜你喜欢
          • 2011-12-21
          • 2021-09-02
          • 1970-01-01
          • 2010-11-22
          • 2011-09-18
          • 2015-01-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多