您好,我正在研究Web抓取脚本,并且我有一个当前向我返回字符串的函数。我想将该函数的结果传递给page.evaluate。它返回的是undefined-根据我认为是有充分理由的文档(不可序列化)。
我将如何使用此功能?
let imgTag = await comparer(img1, productImageURLarr); ///returns String
let divSel = imgTag
let parentdivs = await page.evaluate(
(divSel) => {[...document.querySelectorAll(`img[alt=${divSel}]`)].map(elem => elem.closest('href'))
}, divSel);
console.log(parentdivs) ///returns undefined
还应注意-当我输入字符串的值(不用引号引起来)而不是表达式时,它将返回我想要的对象。
答案 0 :(得分:1)
您错过了return
函数中的parentdivs
关键字。
let parentdivs = await page.evaluate(divSel => {
return [...document.querySelectorAll(`img[alt=${divSel}]`)].map(elem => elem.closest('href'))
}, divSel);