You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用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

火山引擎 最新活动