目前,我正试图从一个网页上抓取信息,以便在以下站点的不和谐机器人中使用:https://scp-wiki.wikidot.com/personnel-and-character-dossier(“代理”选项卡)
我还没有使用太多Cheerio库,在一篇文章的帮助下编写了我目前的代码。
const fs = require('fs');
const cheerio = require('cheerio');
const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));
async function test() {
const response = await fetch('https://scp-wiki.wikidot.com/personnel-and-character-dossier');
const body = await response.text();
// parse the html text and extract titles
const $ = cheerio.load(body);
const titleList = [];
// wiki-tab-0-2 is id of Agents tab in dossier
// using CSS selector
$('#wiki-tab-0-2').each((i, title) => {
const titleNode = $(title);
const titleText = titleNode.text();
titleList.push(titleText);
});
console.log(titleList);
}
test()
我想做的是将文本拆分为单独的索引,该索引中的文本将位于前一个元素和后一个元素之间。
但我不知道该怎么做。
任何额外的文件,资源或建议,可以进一步我的知识将不胜感激。
预期的输出将是“Active Foundation Field Agents.”文本位于第一个索引中,第二个索引是关于Agent绿色的所有文本,第三个索引是关于Agent Travis Kazmarek的所有文本,依此类推。
titleList["Active Foundation Field Agents.", "Agent Green", "Agent Travis Kazmarek"]
1条答案
按热度按时间e5nqia271#
根据您的编辑,并在查看页面后,我认为您希望以
#wiki-tab-0-2 > p
为目标,而不是#wiki-tab-0-2
。