pupeteer 按钮,带有在抓取页面中执行 javascript 的链接

问题描述 投票:0回答:1

我正在抓取一个页面,该页面有一个带有链接的按钮,该按钮执行 JavaScript 函数。 单击按钮时,将打开一个模式,其中包含我想要抓取内容的文本区域。 按钮链接html代码是这样的。

<a id="get_code_atag_476192" href="javascript:void(0);" onclick="getCode(476192)" class="getCode"><img src="/templates/default2/images/icon-edit.png" alt="Λήψη κώδικα" title="Λήψη κώδικα"></a>

单击按钮时,它会动态创建以下带有我感兴趣的文本区域的 html。

<div class="modal getCode jqmID1" id="getCodeModal" style="z-index: 30000; display: block; top: 617px;">
    <p class="title">
        <span>Λήψη κώδικα δημιουργικού</span>
        <a href="javascript:void(0);" class="close" id="getCodeModalClose"><span>close</span></a>
    </p>
    <fieldset>

        <div style="position:relative;">
        <img id="shorten_link_image" src="/templates/default2/images/ajax_loader.gif" style="display: none; position: absolute; top: 45px; left: 257px;">    
        <textarea name="copythis" id="copythis" readonly="readonly" class="">&lt;script type="text/javascript" src="//go.linkwi.se/delivery/js/crl.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
LinkwiseCreative.show("13536-49", "CD26071", "_blank");
&lt;/script&gt;
&lt;noscript&gt;
    &lt;iframe id="lkws_653d5ccd6eccd" name="lkws_653d5ccd6eccd" src="//go.linkwi.se/delivery/ih.php?cn=13536-49&amp;amp;an=CD26071&amp;amp;target=_blank&amp;amp;" style="width:250px;height:250px" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;
&lt;/noscript&gt;</textarea>

关于如何实现这一目标有什么想法吗??? 预先感谢。

我已经尝试过了

let codeButtons = await page.evaluate(() => {
        let code = Array.from(document.querySelectorAll('.getCode'))
        return code;        
        });
for (let i = 0; i <codeButtons.length; i++) {
            await page.click(codeButtons[i]);
            break;
        }

(出现循环是因为页面中有多个按钮。) 但它不起作用。

javascript web-scraping button puppeteer href
1个回答
0
投票

找到了。 等待页面.waitForSelector(选择器); 等待页面.单击(选择器);

无论如何谢谢!!

© www.soinside.com 2019 - 2024. All rights reserved.