使用cheerio nodejs擦除表数据
Scraping table data using cheerio nodejs
我是cheerio的新手,希望在特定的表中抓取所有团队名称,并以json形式返回数据,例如像一样
{
name: "Manchester City"
}
到目前为止,我已经在下面创建了一个假设是返回数据的api,但我似乎无法访问任何特定的元素?我一直收到以下响应TypeError: Converting circular structure to JSON
代码
app.get('/api/standings', function(req, res, next){
var base = "http://www.skysports.com/football/competitions/premier-league/tables";
var age = 2015;
request.get(`${base}`, function(err, response, body) {
var $ = cheerio.load(body);
//get standings
var classes = $('standing-table__table tbody tr').each(function() {
var d = $(this);
var td = d.children('td.standing-table__cell standing-table__cell--name');
return td.eq(0).text();
});
res.json(classes);
});
});
首先,您使用的cheerio函数不正确。你需要.map
而不是.each
。Each
只是根据迭代器函数中的代码进行迭代,而不返回任何有用的内容,而map
则将迭代器功能返回的所有内容收集到一个数组中。因此,切换到.map
,您应该得到一个字符串数组(假设您的选择器和HTML解析在其他方面是正确的)。你会得到["Name 1", "Name 2", "Name 3"]
。
然后,您需要将其转换为所需的格式,即对象数组,因此您需要在此处再次调用.map
。
res.json(classes.map(function (name) {return {name: name}}));
相关文章:
- HTML画布在绘图后立即擦除矩形
- 为什么缩放按钮不会显示在照片擦除中
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- 应用程序脚本中导入HTML的数据擦除;谷歌表格
- 正在擦除要重新显示的单元格
- 通过python擦除Vine数据
- 擦除单元格问题
- 尝试擦除时删除输入中的零
- 擦除画布中的矩形,但它们会回来
- 如何使用 javascript 向我的 html 添加内容而不擦除整个页面
- Javascript用光标擦除图像
- 停止Angular JS ng视图擦除页面
- 为什么Jquery UI会擦除我的输入框
- HtmlWebpackPlugin擦除模板分区
- "“照片擦除”;画廊关闭自己的图像点击在小图像的情况下
- 简单类型和擦除效果不起作用
- 使用Python擦除javascript生成的页面
- 内部 HTML 在添加多个文本框时擦除该值
- JQuery 移动版想要在按下后退按钮时擦除数据
- 使用cheerio nodejs擦除表数据