这是我的代码片段:
nightmare
.goto('https://www.stadiumgoods.com/catalogsearch/result/?q=BV4594-001')
.wait('body')
.evaluate(() => document.querySelector('body').innerHTML)
.end()
.then(response => {
const $ = cheerio.load(response);
console.log($('.item > a').attr('href'));
此代码段抓取链接上显示的第一个产品的 URL。但是,此过程需要整整 30 秒才能抓取链接。
有没有办法使这个过程更快?也许使用噩梦以外的另一个 npm 包?我试过使用木偶师,但它不适用于这个特定的网站。
我建议这样做:
-
再次尝试使用木偶师,因为从噩梦到木偶师的转换并不是一项艰巨的任务
-
使用以下代码阻止加载 CSS 和图像:
await page.setRequestInterception(true(;
page.on('request', (req( => { if(req.resourceType(( == 'stylesheet' || req.resourceType(( == 'font' || req.resourceType(( == 'image'({ req.abort((; } 否则 { req.continue((; } });
最终,就像提到的其他评论一样:它还取决于运行脚本的网络速度和服务器/PC 的功率。
干杯!