2401_86071404 2025-02-27 16:02 采纳率: 50%
浏览 4

安卓上pyppeteer无法使用

在安卓上使用qpython爬javascript动态网页,发现pyppeteer会访问不了chrome。本来pyppeteer会在user data 0里面安装chrome,我以为是user data 0访问权限不够。结果我弄了一个chrome-linux在download文件夹,说也permission error,deepseek的意见是安卓有沙盒机制,qpython访问不了本应用之外的文件,那user data 0也不行啊。。。有没有大神带带我

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-02-27 16:02
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解答

    Pyppeteer在安卓上无法使用的原因可能是因为安卓系统的安全限制和 Chrome 的用户数据目录问题。

    在安卓上,Pyppeteer无法访问 Chrome 的用户数据目录(~/.config/google-chrome/Default),这使得 Pyppeteer 无法正确地安装 Chrome。

    解决方法:

    1. 使用 puppeteer.launch() 方法时,添加 args 参数,指定 Chrome 的用户数据目录。例如:
    import puppeteer
    
    args = ['--user-data-dir=/data/user/0/com.google.android.apps.chrome']
    browser = puppeteer.launch(args=args)
    
    1. 使用 puppeteer.connect() 方法连接到已经存在的 Chrome 进程。例如:
    import puppeteer
    
    browser = puppeteer.connect({
        'browserWSEndpoint': 'ws://localhost:9222'
    })
    
    1. 使用 puppeteer.launch() 方法时,添加 headless 参数,指定 Chrome 不要在桌面上显示。例如:
    import puppeteer
    
    browser = puppeteer.launch(headless=True)
    
    1. 在安卓上,使用 puppeteer 库时,需要在 AndroidManifest.xml 文件中添加以下权限:
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
    1. 在使用 puppeteer 库时,需要在 build.gradle 文件中添加以下依赖项:
    dependencies {
        implementation 'com.google.code.gson:gson:2.8.6'
        implementation 'org.json:json:20210307'
    }
    

    这些方法可以帮助你在安卓上使用 Pyppeteer。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月27日