【问题标题】:Finding image src using puppeteer使用 puppeteer 查找图像 src
【发布时间】:2021-12-14 21:14:28
【问题描述】:

我正在尝试使用 Puppeteer(class="bRMDJf islir) 获取第一个 Google 图片搜索结果的 src。 我尝试过使用父类以及图像类本身:

const imgURL = await page.$eval('img.rg_i.Q4LuWd[src]',img => img.src);
const imgURL = await page.$eval('.bRMDJf.islir img',img => img.src);

【问题讨论】:

    标签: node.js automation puppeteer


    【解决方案1】:

    您的主要问题是您的选择器错误。

    const imgURL = await page.$eval('.bRMDJf.islir img', img => img.src);
    

    应该是:

    const imgURL = await page.$eval('.bRMDJf.islir > img', img => img.src);
    

    此外,如果您想从之前选择的元素中获取图像 src,而不是从页面上下文中选择元素(使用 page.$eval),或者如果您想使用 xpath 进行选择,您可以使用取而代之的是元素上的 getProperty。

    应该是这样的:

    首先选择元素:

    • CSS

      const element = await page.$('.bRMDJf.islir > img');
      
    • XPath - 选择第一个元素是 img,其属性为 src,该元素包含在属性为 class 且值为 bRMDJf islir 的任何元素中。

      const element = (await page.$x('//*[@class="bRMDJf islir"]/img[@src]'))[0];
      

    然后从元素中获取属性src的值:

    const imgSrc = (await element.getProperty('src'))._remoteObject.value;
    

    【讨论】:

      猜你喜欢
      • 2019-02-11
      • 1970-01-01
      • 2020-06-08
      • 1970-01-01
      • 2022-12-03
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多