我尝试使用Request节点包从公共LinkedIn页面请求数据。我正在使用Cheerio来解析响应,但当我尝试使用过滤器隔离数据时,它神秘地开始返回undefined。
这是我的请求解析代码:
var $ = cheerio.load(html);
//COMPANY
$('div .image-wrapper img').filter(function(){
company = $(this);
company = company.attr('alt');
if (typeof company != 'string') {
company = "Not Available";
}
console.log("Scraping " + company + ": URL #" + counter + " of " + urls.length);
inArr.push(company);
})
所以我有一个想法,也许我可以手动解析响应并找到我正在寻找的内容,然后找到一种在代码中获取它的方法。所以我控制台记录了响应并获得了非常非常长的响应。数据的格式类似于JSON。随着"身体" key,是对象中的最后一项。
我会在包含数据的摘录下方粘贴,但我无法粘贴整个数据。
键/值基本上是这样开始的:
body: '<!DOCTYPE html>\n<!--[if lt IE 7]>
并且包含大量数据,这些数据存储在看起来像这样的HTML注释中:
<!--{"specialties":["forwarding","supply chain",
"supply chain management","supply chain development","reefer logistics",
"ocean freight","airfreight","landside services","transport documents",
"cargo insurance","customs clearance","trucking","haulage","warehouse",
"distribution","retail logistics"],"squareLogo":"/
令人沮丧的是,我需要的数据就在响应中,但我不知道这是什么或如何解析它。我尝试使用JSON.parse和各种其他html解析节点包。有没有人知道一个很好用的解析器?谢谢!