为了账号安全,请及时绑定邮箱和手机立即绑定

Puppeteer:for 循环 - 语法问题

Puppeteer:for 循环 - 语法问题

Smart猫小萌 2022-12-29 16:46:40
我的语法有什么问题?它抛出一个错误:Scraping failed Error: Evaluation failed: ReferenceError: getLogo is not defined代码片段:      const universityAtt = await page.evaluate(() => {            // Getting total number of universities            let totalUniversities = document.querySelector('ul.universities-search-result').childElementCount            for (i = 0; i < totalUniversities; i++) {                getLogo += document.querySelectorAll('.profile_lead > .dp > img.logo-90x90')[i].src;                universityURL += document.querySelectorAll('a.profile.adv, a.profile.basic')[i].href;                let x = [getLogo, universityURL];            };            return x;        });编辑 (1) 当我声明 getLogo 和 universityURL 变量时,        const universityAtt = await page.evaluate(() => {            // Getting total number of universities            let totalUniversities = document.querySelector('ul.universities-search-result').childElementCount            for (i = 0; i < totalUniversities; i++) {                let getLogo += document.querySelectorAll('.profile_lead > .dp > img.logo-90x90')[i].src;                let universityURL += document.querySelectorAll('a.profile.adv, a.profile.basic')[i].href;                let x = [getLogo, universityURL];            };            return x;        });我收到此错误:SyntaxError: Unexpected token '+='    at wrapSafe (internal/modules/cjs/loader.js:1116:16)    at Module._compile (internal/modules/cjs/loader.js:1164:27)    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)    at Module.load (internal/modules/cjs/loader.js:1049:32)    at Function.Module._load (internal/modules/cjs/loader.js:937:14)    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)    at internal/main/run_main_module.js:17:47
查看完整描述

4 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

你忘了初始化getLogo,就像你所做的那样totalUniversities


const universityAtt = await page.evaluate(() => {

    let getLogo;

    // Getting total number of universities

    let totalUniversities = document.querySelector('ul.universities-search-result').childElementCount

    for (i = 0; i < totalUniversities; i++) {

        getLogo += document.querySelectorAll('.profile_lead > .dp > img.logo-90x90')[i].src;

        universityURL += document.querySelectorAll('a.profile.adv, a.profile.basic')[i].href;

        let x = [getLogo, universityURL];

    };

    return x;

});


查看完整回答
反对 回复 2022-12-29
?
隔江千里

TA贡献1906条经验 获得超10个赞

它就在那里说;我看到你赋值但从不声明它们let const或者var请先做这样的事情:


let getLogo += document.querySelectorAll('.profile_lead > .dp > img.logo-90x90')[i].src;

let universityURL += document.querySelectorAll('a.profile.adv, a.profile.basic')[i].href;



查看完整回答
反对 回复 2022-12-29
?
跃然一笑

TA贡献1826条经验 获得超6个赞

请尝试这样。在实际使用它之前定义变量。


let testVar=0;

for (i = 0; i < 10; i++) {

    testVar += 3;

}

console.log(testVar);


查看完整回答
反对 回复 2022-12-29
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您需要定义 getLogo 变量


const universityAtt = await page.evaluate(() => {

            // Getting total number of universities

            

            let totalUniversities = document.querySelector('ul.universities-search-result').childElementCount

            for (i = 0; i < totalUniversities; i++) {

                let getLogo += document.querySelectorAll('.profile_lead > .dp > img.logo-90x90')[i].src;

                universityURL += document.querySelectorAll('a.profile.adv, a.profile.basic')[i].href;

                let x = [getLogo, universityURL];

            };

            return x;

        });


查看完整回答
反对 回复 2022-12-29
  • 4 回答
  • 0 关注
  • 197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号