#playwright #apify
#драматург #apify
Вопрос:
У меня есть PlaywrightCrawler, чтобы очистить Alibaba. Но когда я добавляю запрос на одну страницу, например:
Эта страница загружалась до истечения времени ожидания, и функция handlePageFunction не вызывалась.
На самом деле, все содержимое загружено завершено. Я заметил, что некоторые AJAX выполняются в фоновом режиме.
Как мне заставить PlaywrightCrawler вызывать функцию handlePageFunction, даже если AJAX не завершил ее?
const crawler = new Apify.PlaywrightCrawler({
requestQueue,
launchContext: {
launchOptions: {
headless: false,
},
},
handlePageFunction,
});
Ответ №1:
вы можете изменить свой параметр waitUntil, чтобы перейти на страницу, как только загрузится DOM, используя это:
const crawler = new Apify.PlaywrightCrawler({
requestQueue,
// ...
preNavigationHooks: [async (context, gotoOptions) => {
gotoOptions.waitUntil = 'domcontentloaded';
}],
});
это сработает, как только страница будет готова к запросу document.querySelectorAll
, вам, возможно, придется подождать определенных условий внутри handlePageFunction
, прежде чем начинать вызывать page
методы