为了账号安全,请及时绑定邮箱和手机立即绑定

刮擦JavaScript生成的网页数据

刮擦JavaScript生成的网页数据

幕布斯7119047 2019-11-03 15:04:13
我的问题是:如何从该网站http://vtis.vn/index.aspx抓取数据,但是直到您单击例如“ 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)));                               }                          }                         }谢谢您,StackOverflow是个好地方。D.
查看完整描述

2 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

您需要查看PhantomJS。


从他们的网站:


PhantomJS是带有JavaScript API的无头WebKit。它具有对各种Web标准的快速本机支持:DOM处理,CSS选择器,JSON,Canvas和SVG。


使用API,您可以编写脚本来使“浏览器”与该页面进行交互并抓取所需的数据。然后,您可以使用它来做所需的任何事情。包括在必要时将其传递给PHP脚本。


话虽这么说,如果可能的话,尽量不要“刮”数据。如果页面正在进行ajax调用,也许有可以替代的API?如果没有,也许您可以说服他们做一个。当然,这比屏幕抓取要容易得多,并且更易于维护。



查看完整回答
反对 回复 2019-11-04
  • 2 回答
  • 0 关注
  • 267 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号