【发布时间】:2020-01-18 08:17:22
【问题描述】:
我正在尝试从 whitepages.com 抓取地址,但我的抓取工具每次运行时都会抛出此错误。
(node:11389) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'getProperty' of undefined
这是我的代码:
const puppeteer = require('puppeteer')
async function scrapeAddress(url){
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(url,{timeout: 0, waitUntil: 'networkidle0'});
const [el]= await page.$x('//*[@id="left"]/div/div[4]/div[3]/div[2]/a/h3/span[1]');
// console.log(el)
const txt = await el.getProperty('textContent');
const rawTxt = await txt.jsonValue();
console.log({rawTxt});
browser.close();
}
scrapeAddress('https://www.whitepages.com/business/CA/San-Diego/Cvs-Health/b-1ahg5bs')
经过一番调查,我意识到 el 变量被返回为未定义,我不知道为什么。我已尝试使用相同的代码从其他站点获取元素,但仅对于该站点,我才收到此错误。
我尝试了完整和短 XPath 以及其他周边元素,但该站点上的所有内容都会引发此错误。
为什么会发生这种情况,有什么办法可以解决吗?
【问题讨论】:
标签: javascript web-scraping puppeteer