测试URL:https://www.ly.com/HotelInfo-94010082.html?spm0=10002.2001.1.0.2.2.1
遇到的问题:
使用puppeteer打开个别网站的网页时,会遇到卡住,一直无法结束的问题。
如图:
可以看到浏览器上方tag一直在转圈圈。
原因是,在代码中设置了Page的JS执行解析,在这个页面中含有"debugger"调试信息,不懂前端开发人员,为什么上正式环境了,这些调试代码,不去掉的吗?
打开F12,输入网址,会自动进入debugger模式,暂停住。
并且在代码中写了以下代码,puppeteer中解析并执行了,然后就暂停了。
await Promise.all([
page.coverage.startJSCoverage(),
page.coverage.startCSSCoverage()
]);
但是考虑到大部分网站是需要这些动态JS执行的,把这段代码去掉有点不妥当,就使用以下代码,针对个别网站,禁止JS调用。
if (request_url.includes('www.ly.com')) {
await page.setJavaScriptEnabled(false);
}
需要的静态的页面,就没问题了。