javascript - 无法使用 Cheerio 从 <div> Node 蜘蛛获取信息

标签 javascript jquery node.js cheerio

我正在尝试从巴尔的摩市网站(监控状态项目)下载闭路电视位置的纬度/经度位置,但没有让控制台记录任何内容。

这是网站:

enter image description here

我的代码是:

const request = require('request');
const cheerio = require('cheerio');


let URL = 'https://data.baltimorecity.gov/Public-Safety/CCTV-Locations/hdyb-27ak/data'
let cameras = [];

request(URL, function(err, res, body) {
  if(!err && res.statusCode == 200) {
    let $ = cheerio.load(body);
    $('div.blist-t1-c140113793').each(function() {
      let camera = $(this);
      let location = camera.text();
      console.log(location);
      cameras.push(location);
    });
    console.log(cameras);
  }
});

我尝试将其设置为 blist-t1-c140113793blist-td blist-t1-c140113793 但都不起作用。

最佳答案

这是因为这些 div 的数据是在页面渲染后异步加载的。 JavaScript 不由 Cherrio 或任何其他此类库执行。您需要分析网络流量并了解哪个 HTTP 调用加载此数据,或者使用 Selenium 之类的东西,它实际上在浏览器内执行 JavaScript。

关于javascript - 无法使用 Cheerio 从 <div> Node 蜘蛛获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40831433/

相关文章:

Node.js 双因素身份验证

javascript - jquery 鼠标移动在触摸设备上不起作用

node.js - 使用密码导出 AWS Cognito 用户

javascript - jQuery 切换 tbody

javascript - Smartclient GWT 使用自定义数据源使 ListGridRecord 字段可编辑

javascript - 选择一个父元素中的特定元素

javascript - 为什么 jQuery 为元素高度返回 null?

javascript - 如何使用强标签使字符串中的一个单词加粗

jquery - 如何禁用拖动但仍在全日历上显示工具提示

ruby-on-rails - 在 Rails 和 Node 之间共享 session 数据?