建议收藏,情况很常见哦!!!

我们在自动化抓取的时候,常常遇到多层iframe页面嵌套。并且还有子节点嵌套的情况。

image.png

然后快速定位

import pyppeteer
browser = await pyppeteer.launch({
        'headless': False,  # 关闭无头模式
        # 'devtools': True,  # 打开 chromium 的 devtools
        'executablePath': r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe',
        'args': [
            '--disable-extensions',
            '--hide-scrollbars',
            '--disable-bundled-ppapi-flash',
            '--mute-audio',
            '--no-sandbox',
            '--disable-setuid-sandbox',
            '--disable-gpu',
            '--disable-infobars',
            # f'--proxy-server={ip}:{port}'  # 代理
        ],
        'dumpio': True,
    })

page = await browser.newPage()
await page.goto('https://login2.htm')  # 打开网页
frame = page.frames  # 获取所有的iframe


# 多层frame, 快速定位元素所在哪个frame中
for i, b in enumerate(frame):
    for j in b.childFrames:
        slider = await j.xpath('/html/body/center')
        print(i, slider)

b.childFrames :获取iframe框架的子框架

效果图

image.png

定位到是第二个frame中

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐