我正在尝试使用Puppeteer进行一些Web抓取,但是脚本似乎无法找到我要寻找的选择器。基本上这段代码:
const puppeteer = require('puppeteer');
let scrape = async () => {
const year = 18;
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.goto('https://cobbcounty.org/index.php?option=com_wrapper&view=wrapper&Itemid=2008');
await page.waitFor(5000);
var id = '';
for(i=0;i<10000;i++){
id = i;
await page.click('#txtCase');
await page.keyboard.type(year + '-P-' + id);
await page.select('#lstDoc','Estate');
}
}
scrape().then((value) => {
console.log('script ended');
});
Run Code Online (Sandbox Code Playgroud)
给我这个错误:
(node:31125) UnhandledPromiseRejectionWarning: AssertionError
[ERR_ASSERTION]: No node found for selector: #txtCase
Run Code Online (Sandbox Code Playgroud)
据我所知,#txtCase是页面上的实际选择器,所以我不知道为什么木偶找不到它。如果有人可以向我解释我在做什么错,那将非常有帮助。
我正在尝试使用 Puppeteer 进行一些网页抓取,但我不确定如何实际下载我找到的文档。具体来说,我想从这样的页面下载pdf 。我的代码中尝试下载 pdf 的部分当前如下所示(注释行是下载尝试不起作用):
const newPagePromise = new Promise(x =>
browser.once("targetcreated", target => x(target.page()))
);
await page.click(
"#gvDocketResult_ctl0" + rows.length + "_hlDocumentRedacted"
);
await page.waitFor(3000);
const newPage = await newPagePromise;
// need to figure out how to download
await newPage._client.send("Page.setDownloadBehavior", {
behavior: "allow",
downloadPath: "/Users/me/Desktop",
});
// await newPage.pdf({path: 'hn.pdf', format: 'letter'});
// await newPage.click('#download');
// await newPage.click('#icon');
Run Code Online (Sandbox Code Playgroud)
从我到目前为止发现的情况来看,如果我可以获得src = ''网页部分中显示的链接(下图),那么我也许可以使用 page.goto(link) 来下载 pdf?无论如何,我不知道如何在 puppeteer 中访问该链接,因此如果有人对此有建议,我也将不胜感激。