在puppeteer js中抓取网页时出错

时间:2019-11-25 06:09:52

标签: javascript web-scraping puppeteer

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

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

页面上有卖家名称时,它会给我该文字。但是,当它没有任何卖家名称时,就会出现以下错误。

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

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

您将要防止页面上没有与该选择器匹配的元素。您应该可以轻松做到:

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

null的“真实值”为false,因此如果页面上没有元素为seller-name的元素,则'if'块中的代码将不会执行。

答案 1 :(得分:1)

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

const sellerDiv = document.querySelector(".seller-name")
let seller = ""

if(sellerDiv) {
    seller = sellerDiv.textContent;
} else {
    seller = ""
}

console.log(seller)