【发布时间】:2012-09-19 19:12:32
【问题描述】:
我的问题是:如何从该网站http://vtis.vn/index.aspx 抓取数据但是直到您单击例如“Danh sách chậm”时才会显示数据。我已经非常努力和仔细地尝试过,当您单击“Danh sách chậm”时,这是触发一些 javascript 函数的 onclick 事件,其中一个 js 函数是从服务器获取数据并将其插入标签/占位符并在此时您可以使用 Firefox 之类的工具来检查数据,是的,数据会在网页上显示给用户/查看者。再说一遍,我们如何以编程方式废弃这些数据?
我写了一个报废功能,但它当然没有得到我想要的数据,因为在我点击按钮“Danh sách chậ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 之类的东西并编写浏览器脚本。您所说的数据很可能是通过 AJAX 获取的。您将不得不模拟一次点击,等待 AJAX 更新页面,然后对其进行 scape。我不知道这没有帮助。
-
谢谢,phantomjs 是一个可能的解决方案。
标签: javascript php html-parsing domdocument