根据主题,我的page.evaluate似乎无法运行。
crawler.crawlUrl = async function(url) {
if (!url) {
return;
}
const page = await crawler.browser.newPage();
await page.goto(url);
console.log('got to here');
await page.evaluate(() => {
const links2 = document.querySelectorAll('*');
console.log('what');
console.log(links2);
return Promise.resolve(true);
}).catch(function(er){
console.log(er);
});
}
crawler.crawlUrl('https://www.sundhed.dk');
在运行时,我最终得到了“到达这里”。语句记录到终端但没有其他事情发生。它只是永远地坐着。
答案 0 :(得分:0)
尝试等待回来的东西!我的经验法则是每当我要求新资源时(点击按钮,转到网址)我总是执行waitForXXX
await page.goto(url);
await page.waitForSelector("h1");
您可能需要将h1替换为页面上存在的内容。
View list of puppeteer selectors
我创建了一个适合我的脚本: -
尝试等待回来的东西!我的经验法则是每当我要求新资源时(点击按钮,转到网址)我总是执行waitForXXX
await page.goto(url);
await page.waitForSelector("h1");
您可能需要将h1替换为页面上存在的内容。
View list of puppeteer selectors
我创建了一个适合我的脚本: -
'use strict';
const puppeteer = require('puppeteer');
async function run() {
const browser = await puppeteer.launch( {
headless: false //true
});
const page = await browser.newPage();
await page.setViewport({ width:1024, height:800});
await page.goto('https://www.sundhed.dk');
await page.waitForSelector('h1');
const innerText = await page.evaluate(() => {
return document.querySelector("H1").innerText;
});
console.log(innerText);
await browser.close();
};
run();