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

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

Mary-Kate Olsen
发布: 2024-12-03 17:33:11
原创
178 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板