You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python+pyppeteer爬虫时如何处理隐私授权弹窗?

解决JustWatch隐私授权弹窗关闭问题

你之前的尝试存在几个关键问题:误用了Playwright的locator语法(Pyppeteer不支持该写法)、选择器未精准匹配目标元素,还在异步函数里用了同步的time.sleep,这些都会导致弹窗处理失效。下面是修正后的可行方案:

核心修正要点

  • 替换错误API:改用Pyppeteer原生的waitForSelector+click组合定位按钮
  • 异步等待替代同步sleep:避免阻塞异步事件循环,保证页面元素加载完成
  • 精准匹配选择器:根据弹窗结构,用更可靠的属性选择器定位"Accept All"按钮

完整修改代码

import asyncio
from pyppeteer import launch
from datetime import datetime, timedelta
import pandas as pd


async def filter_by_url(url):
    browser = await launch(
        {
            "headless": False,
            'args':['--start-maximized'],
            # 'executablePath':'/usr/bin/google-chrome'
        }
    )
    page = await browser.newPage()
    await page.setViewport({'width': 1920, 'height': 1080})
    await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3')
    await page.goto(url)   
    
    # 处理隐私弹窗:容错式等待并点击
    try:
        # 等待按钮加载,超时10秒
        await page.waitForSelector('button[data-testid="uc-accept-all-button"]', {'timeout': 10000})
        await page.click('button[data-testid="uc-accept-all-button"]')
        print("隐私弹窗已关闭")
        await asyncio.sleep(1)
    except Exception as e:
        print("未检测到隐私弹窗或加载超时:", e)

    # 滚动到底部逻辑
    while True:
        await page.evaluate("window.scrollBy(0, document.body.scrollHeight);")
        await asyncio.sleep(2)
        end_point = await page.querySelector(".timeline__end-of-timeline")
        if end_point:
            print("已滚动至页面底部")
            break       

    await browser.close()

# 运行爬虫
urls = [
    'https://www.justwatch.com/ca/provider/netflix?sort_by=trending_7_day'
]
for url in urls:
    asyncio.get_event_loop().run_until_complete(filter_by_url(url))

额外提示

  • 如果上述选择器仍不生效,可打开浏览器开发者工具,右键"Accept All"按钮选择「复制选择器」,替换代码中的选择器内容
  • 用try-except包裹弹窗逻辑,避免因弹窗未出现导致爬虫直接终止

内容的提问来源于stack exchange,提问作者Smit Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 04:31:06