当前位置: 首页 > 科技迭代

如何优雅地使用谷歌浏览器的自动化功能

时间:2024-02-12 21:56:06 科技迭代

想要使用谷歌浏览器的自动化功能,比如自动填充表单,自动点击按钮,自动切换标签页等等,但是却被老是跳出的验证码识别打断,感觉很麻烦,甚至有时候还会被封禁IP,无法继续访问网站?或者你是否有过这样的困惑,不知道如何启动谷歌浏览器的自动化功能,只知道要在命令行输入一些参数,但是又不清楚具体是什么参数,有什么作用,有没有更简单的方法?如果你有这样的问题,那么这篇文章就是为你准备的,我将告诉你如何优雅地使用谷歌浏览器的自动化功能,让你的网页操作更加高效和便捷。


首先,我们要了解一下谷歌浏览器的自动化功能是什么,它是基于谷歌浏览器的一个开放的协议,叫做Chrome DevTools Protocol,简称CDP。CDP允许我们通过一些命令和事件,来控制和监控谷歌浏览器的各种行为,比如导航,加载,渲染,调试,测试等等。CDP的优点是它可以支持多种语言和平台,比如Python,Java,C#,Node.js等等,只要有一个客户端库,就可以和谷歌浏览器进行通信和交互。CDP的缺点是它需要我们在启动谷歌浏览器的时候,指定一个特殊的参数,叫做--remote-debugging-port,这个参数的作用是让谷歌浏览器开启一个本地的服务器,监听一个端口,比如9222,然后我们就可以通过这个端口,发送和接收CDP的命令和事件。这个参数的问题是它会让谷歌浏览器的行为变得不正常,比如会弹出很多的验证码识别,或者会被一些网站检测到是自动化操作,从而拒绝访问或者封禁IP。


那么,有没有什么办法,可以既使用谷歌浏览器的自动化功能,又不影响正常的浏览体验呢?答案是有的,我们可以使用一些技巧,来绕过这些问题,让我们的自动化操作更加隐蔽和稳定。下面,我就为你介绍几个技巧,希望对你有所帮助。


技巧一:使用无头模式


无头模式,顾名思义,就是让谷歌浏览器在没有图形界面的情况下运行,也就是在后台运行。这样,我们就可以避免被人或者网站发现我们在使用自动化功能,也可以节省一些资源,提高一些性能。要使用无头模式,我们只需要在启动谷歌浏览器的时候,加上一个参数,叫做--headless,比如这样:


这样,我们就可以在后台启动一个无头的谷歌浏览器,然后通过9222端口,进行自动化操作。当然,无头模式也有一些限制,比如我们无法看到实际的网页效果,也无法进行一些需要用户交互的操作,比如输入,点击,拖拽等等。如果我们需要看到网页的效果,或者进行一些交互,我们可以使用一些工具,比如screenshot,pdf,repl等等,来获取网页的截图,保存网页为PDF文件,或者在命令行中执行一些JavaScript代码。这些工具的用法,可以参考谷歌浏览器的官方文档,或者一些在线的教程。


技巧二:使用隐身模式


隐身模式,也叫做无痕模式,就是让谷歌浏览器在一个新的窗口中运行,不保留任何的历史记录,缓存,Cookie等等。这样,我们就可以避免被一些网站识别出我们的身份,或者被一些验证码识别干扰,也可以保护我们的隐私,不让其他人看到我们的浏览记录。要使用隐身模式,我们只需要在启动谷歌浏览器的时候,加上一个参数,叫做--incognito,比如这样:


这样,我们就可以在一个新的隐身窗口中启动谷歌浏览器,然后通过9222端口,进行自动化操作。当然,隐身模式也有一些限制,比如我们无法使用一些需要登录的网站,或者一些需要保存的设置,也无法使用一些扩展程序,比如广告拦截,密码管理等等。如果我们需要使用这些功能,我们可以在正常模式下启动谷歌浏览器,然后在隐身窗口中打开一个新的标签页,输入chrome://inspect,然后就可以看到我们的无头或者隐身窗口,点击inspect,就可以进行自动化操作了。


技巧三:使用用户代理


用户代理,就是一个字符串,用来表示我们的浏览器的类型,版本,操作系统,语言等等信息。这个字符串,会在我们访问一个网站的时候,发送给网站的服务器,让服务器知道我们是谁,我们用的是什么浏览器,我们想要什么样的内容。这个字符串,也会被一些网站用来判断我们是否是一个真实的用户,还是一个自动化的程序,如果我们的用户代理和正常的用户不一致,或者是一些常见的自动化的用户代理,比如Selenium,Puppeteer等等,那么我们就有可能被拒绝访问,或者被要求输入验证码。要避免这种情况,我们可以使用一些不同的用户代理,来伪装我们的身份,让网站以为我们是一个正常的用户,或者是一个不同的用户。要使用用户代理,我们只需要在启动谷歌浏览器的时候,加上一个参数,叫做--user-agent,后面跟上一个用户代理字符串。