我有一个解析特定网页的脚本。 当我将headless设置为false时,操纵up的人不会加载页面
await page.goto('https://www.google.com', {
waitUntil: 'load',
// Remove the timeout
timeout: 0
});
我尝试了很多配置,例如:
const args = [
'--no-sandbox',
'--enable-logging',
' --v=1',
'--disable-gpu',
'--disable-extension',
'--disable-setuid-sandbox',
'--disable-infobars',
'--window-position=0,0',
'--ignore-certifcate-errors',
'--ignore-certifcate-errors-spki-list',
'--user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3312.0 Safari/537.36"'
];
const options = {
args,
headless: false, // default is true
userDataDir: "./user_data",
defaultViewport: null,
devtools: true,
ignoreHTTPSErrors: true,
};
但是脚本会一直停留到await page.goto
直到超时。
答案 0 :(得分:0)
据我了解,您不是在解析google.com
页面。
应该考虑的第一件事是waitUntil: 'load'
。完成此操作后,它将认为在触发load事件时导航已完成。
当整个网页(HTML)完全加载,包括所有相关资源(如JavaScript文件,CSS文件和图像)时,就会触发load事件。
在您的情况下此事件没有在合理的超时内触发的可能性很大,因此,我建议不要依赖此waitUntil
,而要使用另一个等待,例如存在某些选择器,例如< / p>
await page.goto('https://www.google.com');
await page.waitForSelector('[name="q"]');