Node 新手,所以这可能是一个对 Node 理解不够好的问题,但基本上我正在尝试使用 Puppeteer 在页面上抓取标题列表。当我在 Chrome 控制台中运行查询时,我会得到一个标题列表。哇!
Array.from(document.querySelectorAll('div.description h3.title')).map(partner => partner.innerText)
(12) ["Jellyfish", "MightyHive", "Adswerve", "55 | fifty-five", "E-Nor", "LiveArea", "Merkle Inc.", "Publicis Sapient", "Acceleration Precision", "Resolute Digital", "PMG", "Kepler Group"]
但是当我在 VS Code 中使用 Node.js 对其进行测试时,我得到一个空数组
const browser = await puppeteer.launch();
const page = await browser.newPage();
const url =
"https://marketingplatform.google.com/about/partners/find-a-partner?utm_source=marketingplatform.google.com&utm_medium=et&utm_campaign=marketingplatform.google.com%2Fabout%2F";
await page.goto(url);
const titles = await page.evaluate(() =>
Array.from(document.querySelectorAll("h3.title"))
.map(partner => partner.innerText.trim())
)
$ Node google-test.js
[]
即使使用检查“复制选择器”快捷方式进行精确选择,我也尝试进一步指定选择器,但仍然得到一个空数组。
如果我更模糊,例如选择“h2”,我会得到一个结果,但是一旦我进一步指定它对我来说就结束了。是什么赋予了?