我Puppeteer
用来检查网站上的无效链接。这些链接h1
的内容为“找不到页面”。我的理解是可以page.evaluate
访问DOM
,但是当我在这里尝试使用它时,就会得到undefined
。我试图访问这些数据(的几个不同的方法.$
,.$eval
),但到目前为止,没有奏效。
当我输入document.querySelector('h1', el => el.textContent)
开发工具时,它可以正常工作。我还设置了userAgent,所以我很确定该站点认为我不是机器人。
const puppeteer = require('puppeteer');
const prepareForTests = async(page) => {
const userAgent = 'Mozilla/5.0 (X11; Linux x86_64)' +
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.39 Safari/537.36';
await page.setUserAgent(userAgent);
}
(async() => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await prepareForTests(page);
const link = await page.goto("https://www.example.com");
console.log(await page.evaluate(() => {
document.querySelector('h1', el => el.textContent);
}));
await browser.close();
process.exit();
})();
看来这个片段是问题所在:
console.log(await page.evaluate(() => {
document.querySelector('h1', el => el.textContent);
}));
document.querySelector()
仅接受1个参数,因此第二个函数将被忽略。尝试这个:
console.log(await page.evaluate(() => {
return document.querySelector('h1').textContent;
}));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句