使用Playwright(或Puppeteer)进行网页抓取时无法定位按钮,获取目标数据失败求助
使用Playwright(或Puppeteer)进行网页抓取时无法定位按钮,获取目标数据失败求助
我查过不少类似的网页抓取问题,但始终没找到能解决我当前困境的方案,具体情况如下:
我需要抓取的页面地址是:https://www.derstandard.at/search?n=&fd=2025-02-17&td=2025-03-06&s=score&query=apple
这个页面里我最关注的是被红圈标注的数字71,不过页面的大部分内容应该是服务端渲染或者动态加载的。
最开始我用R语言的Rselenium尝试,但在我的ARM架构Mac上始终连不上本地服务器,没办法只好换成Node.js的Playwright来实现,但目前还是没成功。
我的Playwright脚本如下:
const { firefox } = require("playwright"); (async () => { // Launch Firefox in headless mode const browser = await firefox.launch({ headless: false }); const page = await browser.newPage(); // Navigate to the website const url = "https://www.derstandard.at/search?n=&fd=2025-02-17&td=2025-03-06&s=score&query=ukraine"; await page.goto(url, { waitUntil: "domcontentloaded" }); // Check if the button exists before trying to click const buttonSelector = ".message-component"; if (await page.$(buttonSelector)) { console.log("Clicking the button..."); await page.click(buttonSelector); await page.waitForTimeout(2000); // Wait a bit for content to update } else { console.log("Button not found, continuing..."); } // Extract all <h1> elements const h1s = await page.evaluate(() => Array.from(document.querySelectorAll("h1")).map((el) => el.innerText.trim()) ); console.log("Extracted <h1> elements:", h1s); // Close the browser await browser.close(); })();
现在遇到的问题是,打开页面后会先弹出一个弹窗,必须点击左侧的按钮才能进入目标页面,但我连这个按钮都定位不到,更别说后续获取那个数字71了。
有没有大佬能指点一下,怎么通过代码实现点击这个弹窗按钮,然后成功获取到目标数字?真的万分感谢!
备注:内容来源于stack exchange,提问作者Lenn




