欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > 自动化操作被制裁解决方案

自动化操作被制裁解决方案

2025/2/26 1:36:24 来源:https://blog.csdn.net/weixin_45487988/article/details/141155896  浏览:    关键词:自动化操作被制裁解决方案

场景

我们做自动化操作的时候,经常被浏览器检测为自动化测试工具,然后被各种制裁,例如:什么真人验证,什么同用不同源(意思是一个东西,网页上和自动化网页效果不一样),反复制裁,我就想能否有一个方案,不让浏览器知道是自动化工具在操作呢?

论证 求道

纠错

那我们就束手无策了吗?我谷歌了一下,很多人说加什么User-agent,什么浏览器xx,其实都是不正确的,因为那是针对请求的,并不是针对自动化操作的,自动化操作最重要义是什么?是替代无意义的重复劳动,那么这个行为一定是仿人的,那我们有什么办法呢?

灵感

这个时候我发现我打开了一个谷歌浏览器,然后进行同样的操作,拦截一个自动机浏览器,做一样的操作,他们得到的结果是截然不同的,我深深郁闷,如果能操作人为浏览器就好了!哎! 什么?操作人为浏览器???那我岂不是可以用远程控制做到,说干就干。
写了这个代码:

import subprocess
import random
import socket
# 
# @Author: Herche Jane
# @Date: 2024-08-12class ChromeController:def __init__(self):self.process = Noneself.port = Nonedef find_free_port(self):"""Find a free port by opening a temporary socket."""s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind(('', 0))port = s.getsockname()[1]s.close()return portdef open_chrome(self):"""Open Chrome browser with a free debugging port."""try:# 生成随机的未使用端口self.port = self.find_free_port()# Chrome 启动命令,路径使用双引号括起来chrome_command = f'"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" --remote-debugging-port={self.port} --user-data-dir="xxx"'# 启动 Chrome 浏览器self.process = subprocess.Popen(chrome_command, shell=True)return self.portexcept Exception as e:print(f"Error opening Chrome: {e}")return -1def close_chrome(self):"""Close the Chrome browser if it's running."""if self.process:try:self.process.terminate()  # 结束 Chrome 进程self.process.wait()self.process = Noneprint("Chrome closed successfully.")except Exception as e:print(f"Error closing Chrome: {e}")if __name__ == "__main__":chrome_controller = ChromeController()port = chrome_controller.open_chrome()if port != -1:print(f"Chrome started on port {port}")else:print("Failed to start Chrome.")

这就等于是人为打开而不是使用google driver打开的浏览器,我对其一番操作得到的结果果然和我手动操作的一模一样

行动和论证

我接下来使用自动化接管了这个浏览器,果然,一顿操作下来得到的结果和手动的一模一样

结论

必要情况下:使用命令打开 + 自动化接管方式 就可以解决大部分被制裁的问题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词