首页 >后端开发 >php教程 >如何从网站抓取动态 JavaScript 生成的数据?

如何从网站抓取动态 JavaScript 生成的数据?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-03 17:33:11231浏览

How Can I Scrape Dynamic JavaScript-Generated Data from a Website?

如何从网页检索 JavaScript 生成的数据

当页面内容由 JavaScript 动态生成时,网页抓取可能会很困难。 http://vtis.vn/index.aspx 遇到了一种这样的场景,其中所需的数据(“Danh sách chậm”)只有在单击按钮后才可用。

使用 PhantomJS 的解决方案

要以编程方式检索此数据,请考虑使用 PhantomJS,这是一个带有 JavaScript 的无头 WebKit 浏览器能力。 PhantomJS 支持浏览器交互脚本,允许您模拟单击按钮并随后访问渲染的数据。

示例脚本:

var page = require('webpage').create();

page.open('http://vtis.vn/index.aspx', function() {
  page.evaluate(function() {
    // Click the "Danh sách chậm" button
    document.querySelector('button[onclick="DanhSachCham();"]').click();
  });

  // Wait for the data to load
  setTimeout(function() {
    var data = page.evaluate(function() {
      // Extract the data from the page
      return document.querySelector('div[id="DivDanhSachTTHT"] tbody').innerHTML;
    });
    console.log(data);
  }, 1000);
});

替代方法:使用API​​

如果可能,探索页面是否做了任何建议使用 Ajax 调用来检索数据。如果是这样,就有可能避免抓取,而是与 API 交互以直接获取数据。这种方法通常比抓取更稳定且可维护。

以上是如何从网站抓取动态 JavaScript 生成的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn