首页 > 解决方案 > 网页抓取 - h1 - 字体访问问题

问题描述

我是网络抓取的新手,在访问 HTML 和 CSS 代码时遇到了一些问题。

我想抓取以下网站的标题: https ://www.leaseplan.com/nl-nl/privatelease/onze-autos/4662/

点击检查后,我发现

<h1 class="u-margin-bottom-none u-margin-bottom@tablet" data-e2e-id="carName"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Fiat 500 - Lounge Hybrid </font></font></h1>

我想取出:Fiat 500 - Lounge Hybrid 并将其放入 excel 文件中。

我用了:

async function getPageData(url, page) {
  await page.goto(url);

  const title = await page.$eval(
    "h1, id=carName",              
    (title) => title.textContent
  );

但是,我不断收到错误:

(node:6216) UnhandledPromiseRejectionWarning: Error: Evaluation failed: DOMException: Failed to execute 'querySelector' on 'Document': 'h1[class=u-margin-bottom-none u-margin-bottom@tablet] .carName' is not a valid selector.
    at __puppeteer_evaluation_script__:1:33

它与“h1,id=carName”有关,但我不确定如何以我的 scaper 识别并取出 Fiat 500 - Lounge Hybrid 的方式编写它

标签: htmlcssweb-scrapingpuppeteer

解决方案


h1 没有id,它是一个数据属性。相反,您可以这样做:

async function getPageData(url, page) {
  await page.goto(url);

    const title = await page.$eval(
      'h1[data-e2e-id="carName"]',              
      (title) => title.textContent
    );
}

有多种选择元素的方法,请在此处查看快速参考


推荐阅读