在NodeJS上用噩梦(PhantomJS)抓取动态网页需要太长时间.如何使此过程更快?



这是我的代码片段:

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 的功率。

干杯!

相关内容

  • 没有找到相关文章

最新更新