【问题标题】:screen scraping technique using php使用 php 的屏幕抓取技术
【发布时间】:2009-02-06 11:12:27
【问题描述】:

如何筛选特定网站。我需要登录一个网站,然后抓取内部信息。 怎么可能做到这一点?

请指导我。

重复:How to implement a web scraper in PHP?

【问题讨论】:

  • 是的,重复。但这更涉及访问需要身份验证的网站。

标签: php screen-scraping


【解决方案1】:
Zend_Http_Client and Zend_Dom_Query

【讨论】:

    【解决方案2】:

    您想查看curl 函数 - 它们会让您从另一个网站获取页面。您可以使用 cookie 或 HTTP 身份验证先登录,然后获取所需的页面,具体取决于您登录的站点。

    一旦你有了这个页面,你最好使用regular expressions 来抓取你想要的数据。

    【讨论】:

    • -1 抱歉,这个问题一次又一次地出现:正则表达式是一种糟糕的抓取方式。使用 HTML/XML 解析器。正则表达式对于这类事情很容易出错,这并不好笑。
    • cletus 我完全不同意。如果您希望从 HTML 中获取一小段信息,那么正则表达式就是您的最佳选择。
    【解决方案3】:

    你应该看看 curl。

    【讨论】:

      【解决方案4】:

      您可能还想看看BeautifulSoup,它是一个 Python 库,应该非常擅长使糟糕的 HTML 可解析。它的目标是屏幕抓取。

      我不知道从 PHP 调用有多容易。

      【讨论】:

      • -1 Beautiful Soup 如果是 Python 就可以,但这不是。为此,有 PHP 库(如 Zend 和 Simple XML)。调用 Python 不是一个明智的解决方案。
      • 似乎有点苛刻。我不太了解 Simple XML 和 Zend,但谷歌搜索表明 SimpleXML 只是一个 XML 解析器,而 Zend 是一个应用服务器。我看不出这些方法中的任何一个如何以任何特定的方式帮助解决以 BS 之类的方式抓取 HTML 的难题。
      • Zend 也是一个包含许多不同包的框架。这就是我的观点:你对 PHP 的了解很粗略(看起来),所以建议 Python(根据你的回答,我认为你知道的更多)并没有真正的帮助。
      • 那么 Zend 有一个包设计用于解析大多数网站上的格式错误的 HTML 吗?如果它似乎没有人在这里推荐它。有这样的包吗?
      • 我对 PHP 有足够的了解,知道它可以用于另一个应用程序。因此,运行一个快速的 Python 脚本以利用 BS 使 HTML 可解析应该可以工作。如果我正在考虑抓取潜在的糟糕 HTML,那么我肯定会先尝试,然后再尝试自己动手。
      【解决方案5】:

      您也可以查看http://php.net/dom

      【讨论】:

        【解决方案6】:

        Curl,一旦进入,使用 QueryPath php 库。 (查询路径.org) 您可以像在 JQuery 中一样通过 CSS 选择器访问 dom 元素, 有方法链...

        比只使用 php 的原生 xml 函数要好得多。

        它也可以作为drupal扩展,但我想你可以在任何php项目中实现它。

        【讨论】:

          猜你喜欢
          • 2010-10-10
          • 2011-06-02
          • 2012-04-14
          • 2011-06-03
          • 1970-01-01
          • 1970-01-01
          • 2011-05-04
          • 2011-06-09
          • 2010-12-06
          相关资源
          最近更新 更多