MacOS系统下:playwright如何连接已打开的谷歌浏览器,绕过反爬

概要

背景

最近项目遇到需要playwright来自动化检测,查阅全网上大量资料,关于如何利用playwright来连接、启动本地已打开的谷歌浏览器的文章少之又少,MacOS下的思路更是如雪地❄️中的脚印难寻,有幸终于在某农教程网发现了一点蛛丝马迹(原文链接

根据其中的思路,再结合ChatGPT,我最终实现了在MacOS系统下的playwright链接已打开的谷歌浏览器。

话不多说,流程如下:

整体架构流程

三步走

第一,打开Chrome指定端口

添加环境变量:

打开MacOS的终端terminal,然后输入以下命令将Chrome的路径添加到你的环境变量中:

export PATH="/Applications/Google Chrome.app/Contents/MacOS:$PATH"

如果不会添加,请看以下部分:

在终端中输入以下命令以使用文本编辑器打开.zshrc文件:
nano ~/.zshrc
 
在打开的.zshrc文件中找到一个空白行,或者在文件的末尾添加以下行:
export PATH="/Applications/Google Chrome.app/Contents/MacOS:$PATH"

保存对文件的更改。在nano编辑器中,按下Ctrl + O,然后按Enter键以保存文件。然后按下Ctrl + X以退出nano编辑器。

激活环境: 在终端中运行以下命令以使更改生效:
source ~/.zshrc
这将重新加载你的.zshrc文件,并使你添加的导出命令生效。

完成以上步骤后,你的环境就已经配置好了。你可以继续运行启动Chrome的命令

Google\ Chrome --remote-debugging-port=9222 --user-data-dir="~/ChromeProfile"

效果如下:
在这里插入图片描述
点击启动,即完成了第一步!

第二步,在pycharm里面利用playwright连接刚刚启动的端口号谷歌浏览器
    # 使用 Playwright 连接到已经运行的 Chrome 浏览器
    with sync_playwright() as playwright:
        # 连接已打开浏览器,找好端口                         '''MacOc下的路径'''
        browser = playwright.chromium.connect_over_cdp("ws://127.0.0.1:9222/devtools/browser/eab0fe5a-7c01-43a5-ba23-7828446bdee0")
        default_context = browser.contexts[0]  # 注意这里不是browser.new_page()了
        page = default_context.pages[0] #如果后续定位不到,说明page这里选择错了页面
        print(page)

        page.set_default_timeout(30000)
重要提示:
	connect_over_cdp(里面的路径从终端里直接复制过来)
	类似这样:
	DevTools listening on ws://127.0.0.1:9223/devtools/browser/dfc62046-9623-4d59-9f9d-f3f351338566
第三步,继续完善playwright代码即可

参考文章:

macbook控制已经运行的Chrome浏览器原创
playwright连接已有浏览器操作

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值