【发布时间】:2020-05-27 05:54:57
【问题描述】:
我正在尝试使用 NodeJS 来学习 Axion 和 Cheerio 进行 Web Scraping... 我做得很好,直到我在尝试将获取的数据很好地保存到 JSON 文件中时偶然发现了一个问题。 我一直在为数组、对象和格式化 JSON 文件而苦恼……如果有人能帮我一点忙,或许可以链接一些有用的资源,我将不胜感激。
这是我现在正在使用的代码:
if (response.status === 200) {
const html = response.data;
let $ = cheerio.load(html);
const data = {
animes: {
details: [],
episodes: []
}
};
$('.item').each(function (i) {
data.animes.details.push({
id: i - 3,
title: $(this).children('.inner').children('.name').text().trim(),
url: $(this).children('.inner').children('.name').prop('href'),
poster: $(this).children('.inner').children('.poster').children('img').prop('src')
});
data.animes.episodes.push({
episode: $(this).children('.inner').children('a').children('.status').children('.ep').text().trim()
});
});
data.animes.details = data.animes.details.slice(4, -21);
fs.writeFile('data/animes.json',
JSON.stringify(data, null, 4), (err) => {
console.log('File successfully written!');
});
}
目前我的 JSON 文件如下所示:
{
"weeb": {
"details": [
{
"id": 1,
"title": "Some title 1",
"url": "https://placeholder.com",
"poster": "https://lets-imagine-a-picture.com/picture01.jpg"
},
{
"id": 2,
"title": "Some title 2",
"url": "https://placeholder.com",
"poster": "https://lets-imagine-a-picture.com/picture01.jpg"
}
],
"episodes": [
{
"episode": "3/12"
},
{
"episode": "13/32"
}
]
}
}
我希望我的 JSON 文件如下所示:
{
"weeb": {
"details": [
{
"id": 1,
"title": "Some title 1",
"url": "https://placeholder.com",
"poster": "https://lets-imagine-a-picture.com/picture01.jpg",
"episodes": [
{
"episode-01": "https://some-nifty-link.com/episode01",
"episode-02": "https://some-nifty-link.com/episode02",
...
}
]
},
{
"id": 2,
"title": "Some title 2",
"url": "https://placeholder.com",
"poster": "https://lets-imagine-a-picture.com/picture01.jpg",
"episodes": [
{
"episode-01": "https://some-nifty-link.com/episode01",
"episode-02": "https://some-nifty-link.com/episode02",
...
}
]
}
]
}
}
【问题讨论】:
-
请随意推荐一个更好的结构来做这件事,如果我真的想做错了:'D
标签: jquery arrays node.js json object