Javascript 使用for-loop和forEach从网站中提取对象JSON数组的html
我正在尝试从该网页的html生成对象的Javascript数组(稍后保存为JSON文件): 我想提取第一部分的职位描述(列在“今天”下)——隐藏在下拉列表下,直到你点击每个职位列表。请参见屏幕截图: 布局是用表构建的:作业列表和作业描述html容器都是同级表行Javascript 使用for-loop和forEach从网站中提取对象JSON数组的html,javascript,jquery,node.js,cheerio,Javascript,Jquery,Node.js,Cheerio,我正在尝试从该网页的html生成对象的Javascript数组(稍后保存为JSON文件): 我想提取第一部分的职位描述(列在“今天”下)——隐藏在下拉列表下,直到你点击每个职位列表。请参见屏幕截图: 布局是用表构建的:作业列表和作业描述html容器都是同级表行 在该网站上,第一个标有“远程创业公司第一份健康保险”的“列表”是促销内容,因此当你点击下面的内容时,不会有隐藏的工作描述文本 所以在我的代码中,我从索引位置2开始,然后在for循环中以2的倍数进行迭代。这部分是有效的。但是,我需要将此职
在该网站上,第一个标有“远程创业公司第一份健康保险”的“列表”是促销内容,因此当你点击下面的内容时,不会有隐藏的工作描述文本
所以在我的代码中,我从索引位置2开始,然后在for循环中以2的倍数进行迭代。这部分是有效的。但是,我需要将此职务描述添加到数组中已从其他数据创建的每个对象(称为scrapedArray
):
const first_table_row = $(first_section).find('tr');
for(var i = 2; i < first_table_row.length; i+= 2) {
let job_description = $(first_table_row[i]).find('.markdown').html().trim();
// console.log(job_description);
scrapedArray.forEach((obj) => {
obj["job_description"] = job_description;
});
}
我做错了什么?有更好的方法吗?当您在
for
循环中循环forEach
时,数组中的所有job\u description
都将分配给一个变量,因此它将具有相同的值(最后一个循环的值)。我把for循环从1改为2,因为你需要公司的标志,对吗?
检查下面的代码,我已经检查过了,它可以工作了
let scrapedArray = [];
// Get the first tbody
let first_section = $('#jobsboard tbody')[0];
const first_table_row = $(first_section).find('tr');
for (var i = 1; i < first_table_row.length; i += 2) {
let company_logo = $(first_table_row[i]).find('.logo').attr('src');
let job_description = $(first_table_row[i + 1]).find('.markdown').html().trim();
scrapedArray.push({
company_logo, job_description
});
}
console.log(scrapedArray);
让Darray=[];
//找到第一个尸体
让first_section=$('jobsboard tbody')[0];
const first_table_row=$(first_section.find('tr');
对于(变量i=1;i
希望这有帮助
let scrapedArray = [];
// Get the first tbody
let first_section = $('#jobsboard tbody')[0];
const first_table_row = $(first_section).find('tr');
for (var i = 1; i < first_table_row.length; i += 2) {
let company_logo = $(first_table_row[i]).find('.logo').attr('src');
let job_description = $(first_table_row[i + 1]).find('.markdown').html().trim();
scrapedArray.push({
company_logo, job_description
});
}
console.log(scrapedArray);