鉴于以下 nodejs Web 抓取示例,我如何确定请求是否由于选项对象中设置的超时限制而失败?
...而不是由于任何其他原因。
const rp = require('request-promise');
const cheerio = require('cheerio');
const scrape = async (url, keyword) => {
try{
const options = {
uri: url,
timeout: 10000,
transform: function (head) {
return cheerio.load(head);
}
};
const $ = await rp(options);
const links = $('link[rel="stylesheet"]');
const hrefsArr = [];
links.each( (i, el) => { hrefsArr.push(el.attribs.href) });
const result = hrefsArr.some( el => el.includes(keyword) );
return { checkedURL: url, isMatching: result };
}
catch(e){
return { checkedURL: url, isMatching: undefined };
}
};
我的目标是在返回的对象中存储如果请求由于超时而失败。