#google-chrome-devtools #puppeteer #chromium
#google-chrome-devtools #кукловод #chromium
Вопрос:
У меня есть скрипт для анализа конкретной веб-страницы. Когда я устанавливаю безголовое false, кукловод не загружает страницу
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
до истечения времени ожидания.
Ответ №1:
Насколько я понимаю, вы анализируете не google.com
страницу. Первое, что следует учитывать, это waitUntil: 'load'
. Что он сделал, он считает, что навигация завершена при запуске события загрузки.
Событие загрузки запускается, когда вся веб-страница (HTML) загружена полностью, включая все зависимые ресурсы, такие как файлы JavaScript, файлы CSS и изображения.
Существует большая вероятность того, что это событие не запускается в вашем случае по разумному тайм-ауту, поэтому я бы посоветовал не полагаться на это waitUntil
, а использовать другое ожидание, например, наличие какого-либо селектора
await page.goto('https://www.google.com');
await page.waitForSelector('[name="q"]');
Комментарии:
1. спасибо за ответ, у меня такая же проблема, страница не загружается
2. Вы имеете в виду, что в вашей среде даже
await page.goto('https://www.google.com')
сбой с ошибкой тайм-аута при навигации?3. console.log(«0») ожидает страницу.goto(‘ google.com ‘ ) консоль.журнал («1») Я вижу только console.log («0»). Как я могу получить журнал?
4. Какие версии кукловода и chrome у вас есть? У вас действительно есть такая старая версия Chrome, которую вы указали в user-agent? Кроме того, можете ли вы сказать, что такое версия HeadlessChrome? Непосредственно
console.log(await page.browser().version());
перед открытием страницы. Есть вероятность, что это может быть проблемой совместимости github.com/puppeteer/puppeteer/blob/main/docs/api.md5. HeadlessChrome /86.0.4240.0