如何通过任何爬虫php获取悬停数据(ajax)


How to get hover data(ajax) by any crawler php

我正在抓取一个网站的数据。我能够在一个页面上完成全部内容。但页面上的一些数据是在悬停在一些图标上并显示为工具提示之后出现的。所以我也需要这些数据。有没有爬行器可以。

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

任何爬网程序都无法获取悬停数据

爬网程序对网页进行爬网并获取整个数据(HTML页面源)。这是我们一点击URL就可以查看的视图。悬停需要将鼠标移动到页面上的HTML属性上,即手动操作。据我所知,目前没有爬行器进行悬停和获取数据的操作。因此,这不可能通过爬网程序获取悬停数据。

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

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

另一种选择是重新考虑爬网程序,也许可以使用基于浏览器的爬网程序。这是我没有太多经验的事情,但我相信其他人也做过。

我建议研究硒。我已经用过很多次了,它绝对可以做onmouseover

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

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