gpt4 book ai didi

javascript - 抓取javascript生成的网页数据

转载 作者:可可西里 更新时间:2023-11-01 13:47:45 26 4
gpt4 key购买 nike

我的问题是:如何从这个网站抓取数据 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 is a headless WebKit with JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG.

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


也就是说,如果可能的话,尽量不要“抓取”数据。如果页面正在进行 ajax 调用,也许有一个 API 可以代替使用?如果没有,也许您可​​以说服他们制作一个。这当然比屏幕抓取更容易和更易于维护。

关于javascript - 抓取javascript生成的网页数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12630891/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com