【问题标题】:How to get hover data(ajax) by any crawler php如何通过任何爬虫php获取悬停数据(ajax)
【发布时间】:2012-03-30 11:51:01
【问题描述】:

我正在抓取一个网站的数据。我能够在一个页面上完整的内容。但是页面上的一些数据是在悬停在一些图标上并显示为工具提示之后出现的。所以我也需要这些数据。是否可以使用任何爬虫。

我正在使用 PHP 和 simplehtmldom 来解析/抓取页面。

【问题讨论】:

  • 你想要tp抓取动态数据?像 ajax 响应?
  • Html 数据将通过 ajax 悬停在某些 <span></span> 上。我想解析这些数据。

标签: php hover web-crawler simple-html-dom


【解决方案1】:

任何爬虫都无法获取悬停数据。

爬虫爬取网页并获取整个数据(HTML 页面源)。这是我们只要点击 URL 就可以查看的视图。悬停需要鼠标在页面上的 HTML 属性上移动操作,即手动操作。据我所知,目前没有爬虫执行悬停和获取数据的操作。因此爬虫无法获取悬停数据。

【讨论】:

    【解决方案2】:

    一种可能性是使用 javascript interpeter 执行 javascript(快速查看此 http://php.net/manual/en/book.v8js.php,它可能是您需要的),然后编写一些额外的 javascript 代码来触发必要元素上的悬停事件。

    如果页面使用 AJAX 来填充必要的字段,使用 Firebug 等工具查看 AJAX 调用并在代码中重新创建这些调用以填充缺失的 DOM 元素可能会更容易。

    另一种选择是重新考虑爬虫,并可能使用基于浏览器的爬虫。这是我没有太多经验的事情,但我相信其他人已经这样做了。

    【讨论】:

      【解决方案3】:

      我建议调查Selenium。用过很多次了,绝对可以onmouseover

      【讨论】:

      • 我需要爬虫在我的数据库中插入数据。它不是爬虫。
      【解决方案4】:

      您无法获取需要用户通过简单的 php curl 进行交互的动态源代码。但是,使用PhantomJS,您可以实现悬停状态并获取页面的未来 ajax 加载。它有一个学习曲线,你需要在你的服务器上安装 node.js 看看你是否有权限。

      使用 PhantomJS,您将能够获得 onmouseover 或动态 ajax 内容,因为它是一个无头 webkit 浏览器,可以使用您的命令访问页面。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-15
        • 1970-01-01
        • 2016-12-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多