【问题标题】:Error while scraping webpage in puppeteer js在 puppeteer js 中抓取网页时出错
【发布时间】:2021-05-14 04:26:47
【问题描述】:

我正在抓取一个使用 puppeteer js 的网页。我正在写以下行来获取卖家的姓名。在某些页面上,它有卖家名称,而在某些页面上,它没有任何卖家名称。

let seller = document.querySelector(".seller-name").textContent;

当一个页面有卖家名称时,它会给我那个文本。但是当它没有任何卖家名称时,它会给我以下错误。

Fatal Error: Evaluation failed: TypeError: Cannot read property 'textContent' of null

谁能帮我解决这个问题?

【问题讨论】:

    标签: javascript web-scraping puppeteer


    【解决方案1】:

    您需要防止页面上没有与该选择器匹配的元素。你应该能够简单地做到:

    let sellerEl = document.querySelector(".seller-name");
    if (sellerEl) {
      let seller = sellerEl.textContent;
    }
    

    null 的“真值”为假,所以如果页面上没有seller-name 类的元素,'if' 块内的代码将不会执行。

    【讨论】:

      【解决方案2】:

      在获取文本内容之前检查元素是否存在。

      const sellerDiv = document.querySelector(".seller-name")
      let seller = ""
      
      if(sellerDiv) {
          seller = sellerDiv.textContent;
      } else {
          seller = ""
      }
      
      console.log(seller)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多