如何遍历超市网站并获得产品名称和价格?

尼古拉斯·弗朗科·拉姆波迪

我试图从超市网站上获取所有类别的所有产品名称和价格,我发现的所有教程仅针对一个const url进行操作,我需要遍历所有这些。到目前为止,我已经知道了

const puppeteer = require('puppeteer');

async function scrapeProduct(url) {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto(url);

    const [el2] = await page.$x('//*[@id="product-nonfood-page"]/main/div/div/div[1]/div[1]/div/div[2]/h1/div');
    const text2 = await el2.getProperty('textContent');
    const name = await text2.jsonValue();

    const [el] = await page.$x('//*[@id="product-nonfood-page"]/main/div/div/div[1]/div[1]/div/div[2]/div[2]/div[1]/div[2]/p[1]/em[2]/strong/text()');
    const text = await el.getProperty('textContent');
    const price = await text.jsonValue();

    console.log({name,price});

    await browser.close();
}

scrapeProduct('https://www.jumbo.com.ar/gaseosa-sprite-sin-azucar-lima-limon-1-25-lt/p'); 

仅适用于一个。我正在使用nodejs和puppeteer。我怎样才能做到这一点?

vsemozhebuty

您可以尝试for...of使用单个浏览器实例和单个页面进行循环,以使抓取工具不会使服务器超载:

const puppeteer = require('puppeteer');

(async function main() {
  try {
    const browser = await puppeteer.launch();
    const [page] = await browser.pages();

    const urls = [
      'https://www.jumbo.com.ar/gaseosa-sprite-sin-azucar-lima-limon-1-25-lt/p',
      // ...
    ];

    for (const url of urls) {
      await page.goto(url);

      const [el2] = await page.$x('//*[@id="product-nonfood-page"]/main/div/div/div[1]/div[1]/div/div[2]/h1/div');
      const text2 = await el2.getProperty('textContent');
      const name = await text2.jsonValue();

      const [el] = await page.$x('//*[@id="product-nonfood-page"]/main/div/div/div[1]/div[1]/div/div[2]/div[2]/div[1]/div[2]/p[1]/em[2]/strong/text()');
      const text = await el.getProperty('textContent');
      const price = await text.jsonValue();

      console.log({name,price});
    }

    await browser.close();
  } catch (err) {
    console.error(err);
  }
})();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Shopify 网站上居中显示产品名称和定价信息?

WooCommerce:在购物车中的产品名称下移动价格和小计

我应该使用什么样的模型/技术来比较超市产品名称

如何从AssemblyInfo获取产品名称和产品描述?

如何选择和显示数组中的产品,并按相同的产品名称排序

iPhone和iPad的不同产品名称

如何从产品名称中提取品牌

如何在API中显示产品名称?

如何使Opencart 1.5.6 url使用产品名称

如何使用jQuery动态获取产品名称和图像?

如何使用NLTK获取时间和日期或特定的产品名称?

如何使用Selenium和Python提取产品名称

产品名称未更新

Web抓取将产品名称和相应的价格添加到熊猫数据框

如果选中此复选框,则以数组形式获取产品名称和价格

从数据库自动填充价格的选定产品名称

如何在Windows上从USB设备的VID和PID获取供应商名称和产品名称?

“产品列表”页面除了产品名称-Magento之外,还获得当前添加的数量。

仅更新产品名称和子产品名称不更新 php mysql 中的产品图片

如何在my-orders.php页面中为最近的订单循环产品名称和照片?

更新现有产品的产品名称

使用Python从Internet提取数据时,产品名称为“无”,产品价格会重复。我该如何解决?

如何创建PHP搜索产品名称或产品设计师?

Oracle SQL:返回每个 ID 和产品名称的最早和最晚日期记录

如何使用LINQ查询获取名称以数字开头的产品名称列表?

在Shopee电子商务网站上获得有关产品名称的有效xpath

在WooCommerce电子邮件模板中获取产品名称和描述

链接具有相同产品名称的双(iphoneos和watchos)框架

显示产品名称和销售数量最多的城市