当前位置: 首页 > 知识库问答 >
问题:

python3.x - pyppeteer可不可以在不关闭浏览器的情况下,在page层面切换代理?

蒋胡非
2023-08-04

我在使用代理的时候,按照这样配置

start_parm = {                    # 启动chrome的路径                    "executablePath": r"C:\Users\1\Desktop\spider(1)\spider\spider\chrome-win\chrome.exe",                    # 关闭无头浏览器                    "headless": False,                    "dumpio": True,                    "args": [                        '--disable-infobars',  # 关闭自动化提示框                        # '--window-size=1920,1080',  # 窗口大小                        '--log-level=30',  # 日志保存等级, 建议设置越好越好,不然生成的日志占用的空间会很大 30为warning级别                        '--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36',  # UA                        '--no-sandbox',  # 关闭沙盒模                        '--start-maximized',  # 窗口最大化模式                        f'--proxy-server=xxxxxx:11111',                        'userDataDir="D:/UserData"'  # 用户文件地址                    ],                }

启动之后是可以使用代理的,但是每当切换代理地址的时候只能关闭浏览器,修改启动参数,这样不仅麻烦,还特别消耗资源。我有100个代理通道需要一起用,总不能启动100个浏览器吧。有没有在page层面切换代理的方法?

共有1个答案

柴耀
2023-08-04

在Pyppeteer里,代理设置是在浏览器级别的,不是页面级别的。这是因为代理设置是在启动浏览器时候用命令行参数传递的。所以一旦浏览器启动,代理设置就不能改了。你这种情况可能考虑要用代理池,可以试试这些代理池:ProxyPool和scylla。

 类似资料:
  • 问题内容: 我使用以下代码处理使用+ 终止正在运行的Python脚本的情况。 但是,这也会终止我的浏览器。 有没有办法终止脚本并使浏览器保持活动状态,以便我可以继续使用它? 我通常要做的是通过+ 暂停脚本。不幸的是,这经常导致浏览器死机并且不响应。 问题答案: 您可以将CTRL + C +替换为方法以终止脚本,而无需关闭浏览器会话。只需使用以下形式:

  • 在过去的一年里,我对JavaFX做了一些研究,甚至用它构建了一些基本的桌面应用程序。 它被描述为用于创建RIAs(富Internet应用程序)。 http://en.wikipedia.org/wiki/javafx http://docs.oracle.com/javafx/2/deployment/deployment_toolkit.htm

  • 问题内容: 我目前正在编写一个复杂的AJAX应用程序,并且整个站点都有干净的URL。目前,PHP为每个页面创建基本布局,但是当用户单击链接时,我不想离开每个页面,也不想在URL中包含哈希,因为它不会不适合该网站的其他部分。我知道这已经增加了网站上的负载,这似乎是很常见的问题,但是我想知道是否存在一种整洁的HTML5方法,即使技术上保持不变,它似乎也只是更改地址栏中的URL页。 问题答案: 您可以使

  • 问题内容: 我正在评估JOOQ是否可在仍在开发中的新系统中使用。我想避免在与应用程序一起开发数据库时生成代码,而只是为该应用程序起持久存储的作用。因此,预计数据库模式定义将由Java代码(java中的表定义)驱动。 JOOQ是否适合上述用例?是否有用于模式定义的Java DSL? 问题答案: JOOQ是否适合上述用例? 是的,许多jOOQ用户仅使用运行时库,而没有代码生成器。入门指南中提供了示例。

  • 我正在评估JOOQ在一个仍在开发中的新系统中的使用情况。当数据库与应用程序一起开发时,我希望避免代码生成,而只是在这个应用程序中扮演持久存储的角色。因此,数据库模式定义应该由Java代码(Java中的表定义)驱动。 JOOQ是否适用于上述用例?是否有用于模式定义的JavaDSL?