1

我正在尝试使用 Puppeteer 从显示带有链接的表格的网页中抓取信息。

当您打开一个链接时,会打开一个包含更多信息的模式。

我正在尝试打开所有链接,并在所有链接中获取信息。

这是我的代码:

const puppeteer = require('puppeteer');
const fs = require('fs');
puppeteer.launch({headless: false}).then(async browser => {
    const page = await browser.newPage();
    await page.goto('https://fcylf.es/competiciones');

    const competitionframe = await page.frames().find(f => f.name() === 'iframecombos');

    const button = await competitionframe.$('#formulario > div.centrado > input.btn.btn-danger.boton_envio.btn-lg');
    button.click();

    let mainframe = await page.frames().find(f => f.name() === 'iframebooox');
    await mainframe.waitForSelector('#datos > ul > li:nth-child(3) > a');
    const div = await mainframe.$('#datos > ul > li:nth-child(3) > a');
    div.click();


    await mainframe.waitForSelector('#clasificacion > .panel > .table-responsive > #resultadosTable > tbody > tr > td > div > a');
    const teams = await mainframe.$$('#clasificacion > .panel > .table-responsive > #resultadosTable > tbody > tr > td > div > a ');

    const results = [];
    for(let team of teams){

        team.click();
        await mainframe.waitForSelector('#myModalLabel');
        const name = await mainframe.$eval('#myModalLabel', name => name.textContent );
        results.push(name);

        const closebt = await mainframe.$('#datos > div.equipoModal.modal.fade.in > div > div > div.modal-footer > button');
        if(closebt!=null){
            closebt.click();
        }
    }
    console.log(results);
});

但是当我显示日志时,它总是显示相同的结果。

4

1 回答 1

0

我想你想#myModalLabel在设置为 display: block; 的 div 中找到

隐藏模态:

<div class="equipoModal modal fade" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true" style="display: none;">

显示模态:

<div class="equipoModal modal fade in" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="false" style="display: block;">

这一行:

const name = await mainframe.$eval('#myModalLabel', name => name.textContent );

看起来它正在从隐藏的模式中获取 textContent ,而不是显示的模式。

我认为。希望这可以帮助!

于 2018-10-31T03:54:11.890 回答