For loop 创建循环以获取元素内部HTML

For loop 创建循环以获取元素内部HTML,for-loop,web-scraping,puppeteer,For Loop,Web Scraping,Puppeteer,我试图创建一个循环,循环遍历每个元素并读取其所有子元素的内部html。我在遍历每个子元素时遇到困难 以下是我正在使用的html示例: <div id="section-content"> <div class="matches"> <div class="day day-28-1"> <h4>Sat, March 28, 2020</h4> <div clas

我试图创建一个循环,循环遍历每个元素并读取其所有子元素的内部html。我在遍历每个子元素时遇到困难

以下是我正在使用的html示例:

<div id="section-content">
    <div class="matches">
        <div class="day day-28-1">
            <h4>Sat, March 28, 2020</h4>
            <div class="day-wrap">
                <div class="match region-7-57d5ab4-9qs98v">
                    <h3 class="time">2:00PM 
                        <span>(Central Daylight Time)</span>
                        <span class="fr">Best of 7</span>
                    </h3>
                </div>
                <div class="match region-7-57d5ab4-9qs98v">
                    <h3 class="time">3:00PM 
                        <span>(Central Daylight Time)</span>
                        <span class="fr">Best of 7</span>
                    </h3>
                </div>
                <div class="match region-7-57d5ab4-9qs98v">
                    <h3 class="time">4:00PM 
                        <span>(Central Daylight Time)</span>
                        <span class="fr">Best of 7</span>
                    </h3>
                </div>
            </div>
        </div>

        <div class="day day-28-1">
            <h4>Sat, March 29, 2020</h4>
            <div class="day-wrap">
                <div class="match region-7-57d5ab4-9qs98v">
                    <h3 class="time">2:00PM 
                        <span>(Central Daylight Time)</span>
                        <span class="fr">Best of 7</span>
                    </h3>
                </div>
                <div class="match region-7-57d5ab4-9qs98v">
                    <h3 class="time">3:00PM 
                        <span>(Central Daylight Time)</span>
                        <span class="fr">Best of 7</span>
                    </h3>
                </div>
                <div class="match region-7-57d5ab4-9qs98v">
                    <h3 class="time">4:00PM 
                        <span>(Central Daylight Time)</span>
                        <span class="fr">Best of 7</span>
                    </h3>
                </div>
            </div>
        </div>
    </div>
</div>

2020年3月28日,星期六
下午2:00
(中央夏时制)
七局之最
下午三点
(中央夏时制)
七局之最
下午四点
(中央夏时制)
七局之最
2020年3月29日,星期六
下午2:00
(中央夏时制)
七局之最
下午三点
(中央夏时制)
七局之最
下午四点
(中央夏时制)
七局之最
我试图读取每个h3元素的内部html。这就是我对它的看法

//Gets number of ".day" elements in the html file
    const dayElement = totalMatches[0].evaluate(() => {
        return document.querySelector('.matches').childElementCount;
    });

    const dayCount = await dayElement.then(function(dayCount) {
        return dayCount;
    });

//iterates through each ".day" element
for (j = 0; j < dayCount; j++) {
//This determines how many times the inner for loop will run
     const matchElements = await page.$$('#section-content > div.matches > div.day');
     const matchCount = await matchElements[j].$eval('div', (div) => div.childElementCount);
     console.log(matchCount);

     const gameTimeElements = await page.$$('#section-content > div.matches > div.day > .day-wrap');

//iterates through each ".match" of specified ".day" element
for (i = 1; i <= matchCount; i++) {
     const element = await gameTimeElements[j].$eval('h3', (h3) => h3.innerHTML);
     console.log(element);
}
i = 1;
}
//获取html文件中“.day”元素的数量
const dayElement=totalMatches[0]。计算(()=>{
return document.querySelector('.matches').childElementCount;
});
const dayCount=await daycelement.then(函数(dayCount){
返回天数;
});
//遍历每个“.day”元素
对于(j=0;jdiv.matches>div.day”);
const matchCount=wait matchElements[j]。$eval('div',(div)=>div.childElementCount);
console.log(匹配计数);
const gameTimeElements=wait page.$$(“#section content>div.matches>div.day>.day wrap”);
//迭代指定的“.day”元素的每个“.match”
for(i=1;i h3.innerHTML);
控制台日志(元素);
}
i=1;
}

我意识到我的第二个for循环不会遍历每个“.match”元素。它目前只抓到第一个。我只是不明白如何迭代每个元素

一次拿到所有的不是更容易吗

await page.evaluate(() => [...document.querySelectorAll('h3')].map(h3 => h3.innerHTML))

这不是我真正想要的。但这正是我所需要的。我完全忽略了这一点。谢谢!