我的问题是:如何从网站抓取数据,但是直到单击例如“Danhsáchchậm”,该数据才显示。我已经非常认真地尝试,当您单击“Danhsáchchậm”时,这是onclick事件,该事件触发了一些javascript函数js函数之一是从服务器获取数据并将其插入标签/占位符,然后在此时,您可以使用firefox之类的方法检查数据,是的,数据将显示给网页上的用户/查看者。因此,我们又该如何以编程方式废弃此数据?
我编写了一个抓取函数,但是它当然无法获取我想要的数据,因为只有在单击“ Danhsáchchậm”按钮后,该数据才可用
<?php $Page = file_get_contents('http://vtis.vn/index.aspx'); $dom_document = new DOMDocument(); $dom_document->loadHTML($Page); $dom_xpath_admin = new DOMXpath($dom_document_admin); $elements = $dom_xpath->query("*//td[@class='IconMenuColumn']"); foreach ($elements as $element) { $nodes = $element->childNodes; foreach ($nodes as $node) { echo mb_convert_encoding($node->c14n(), 'iso-8859-1', mb_detect_encoding($content, 'UTF-8', true)); } }
您需要查看PhantomJS:
PhantomJS是带有JavaScript API的无头WebKit。它具有对各种Web标准的快速本机支持:DOM处理,CSS选择器,JSON,Canvas和SVG。
使用API,您可以编写脚本来使“浏览器”与该页面进行交互并抓取所需的数据。然后,您可以使用它来做所需的任何事情。包括在必要时将其传递给PHP脚本。
话虽如此,如果可能的话,请尽量不要“刮擦”数据。如果页面正在执行ajax调用,也许有可以替代的API?如果没有,也许您可以说服他们做一个。当然,这比屏幕抓取要容易得多,并且更易于维护。