我正试图从这个维基百科页面获得一些数据:https://en.wikipedia.org/wiki/List_of_mango_cultivars
我需要的img src
我可以得到我需要的一切除了img src用这个代码
const recordList = await page.$$eval(
'div#mw-content-text > div.mw-parser-output > table > tbody > tr',
(trows) => {
let rowList = []
trows.forEach((row) => {
let record = { name: '', image: '', origin: '', notes: '' }
record.image = row.querySelector('a > img').src
const tdList = Array.from(row.querySelectorAll('td'), (column) => column.innerText)
const imageSrc = row.querySelectorAll('a > img').getAttribute('src')
record.name = tdList[0]
record.origin = tdList[2]
record.notes = tdList[3]
rowList.push(record)
})
return rowList
}
)
我得到的错误:Evaluation failed: TypeError: Cannot read properties of null (reading 'src')
您可以包装您的记录。
if(row.querySelector('a > img')){
record.image = row.querySelector('a > img').src
}
这将询问a标签中是否存在img,如果存在,则将其添加到对象中。