现在某猫和某宝在反反selenium的道路上越越来恶毒了,大部分是检测webdriver的关键符(网上有很多介绍这里就不一一介绍了)当我们遇到反selenium那该怎么办???????????????下面进入我们的正文!!!!!!!!!!!!!!
pyautogui是一个鼠标键盘的一个库,由于它是真实模拟鼠标和键盘事件所以只能开有界面哦!
下面是一些pyautogui的一些基础用法:
screenWidth, screenHeight = pyautogui.size()
currentMouseX, currentMouseY = pyautogui.position()
pyautogui.moveTo(100, 100)
pyautogui.click()
pyautogui.moveRel(None, 10)
pyautogui.doubleClick()
pyautogui.moveTo(1000, 500, duration=2, tween=pyautogui.easeInOutQuad)
pyautogui.typewrite(‘Hello world!’, interval=0.25)
pyautogui.press(‘esc’)
pyautogui.keyDown(‘shift’)
pyautogui.keyUp(‘shift’)
好了!上面介绍了基本用法。我们来介绍一下运用这个pyautogui利器怎么才能让某宝检测不到咱爬虫!!!!
由于淘宝检测淘宝特别严格只要你用selenium打开浏览器就会检测。但是我们发现他检测最厉害的不就是那个滑块那一段吗?那我们为什么不能在它滑块检测的时候不用selenium就可以了啊!!!(哈哈哈我真是太聪明了)说是迟那是快动手撸代码!
由于我们要滑块过去后才运用selenium所以我们打开网页的方法就不能按常理用selenium打开网页了。
我们想到可以利用 Chrome DevTools 协议呀 运用cmd打开浏览器啊
chrome.exe
https://login.taobao.com
--remote-debugging-port=9222 --user-data-dir=“C:\selenum\AutomationProfile”
(记得提前配置chrome.exe在环境变量中哦)
测试的时候先在cmd中运行这段代码看看能不能打开淘宝网页,如果可以那么恭喜你配置成功啦
接下来我们只需要将这个打开浏览器的步骤用我们的代码来实现
os.system(‘chrome.exe
https://login.taobao.com
--remote-debugging-port=9222 --user-data-dir=“C:\selenum\AutomationProfile”’)
由于我们不是运用selenium打开的浏览器,我们发现我们没办法运用我们的selenium的操作呀,
为了可以运用selenium的操作,我们需要让selenium去接管我们的浏览器
chrome_options = Options()
chrome_options.add_argument(’–log-level=3’)
chrome_options.add_experimental_option(“debuggerAddress”, “127.0.0.1:9222”)
driver = webdriver.Chrome(options=chrome_options)
恭喜你,你已经用selenium控制这个浏览器了。现在我们就可以用selenium的操作了。淘宝的反反selenium也就迎刃而解了。
(你以为这样就完了???我以为这样就完了。。。正当我开心的爬着的时候突然发现淘宝进行了更新,发现现在滑块不管怎么样滑都是错误失败,接下来我们的利器pyautogui就出场了!!!!)
经过本人的不懈努力发现淘宝在首页不管用selenium的任何操作都会被检测(真的恶心啊),它不要我们用,我们就不用呗。既然selenium代替的是我们鼠标键盘操作,那我们用我们的pyautogui这个来模拟鼠标键盘操作不就可以了吗???(真是天才啊我啊哈哈哈哈)
由于pyautogui是用的绝对定位,所以每次操作都是运用的坐标去点击和拖动
print(pyautogui.position())
我们运用这个代码就可以输出当前点的坐标了,然后我们把我们需要点击和滑动的点坐标都print出来不就可以了吗
pyautogui.typewrite('xxxxxxx')#输入账号
pyautogui.typewrite(['enter'])#点击回车
pyautogui.typewrite('xxxxxxxx')#输入密码
pyautogui.moveTo(1256, 631)#移动鼠标到滑块开头处
pyautogui.mouseDown()#按下鼠标
pyautogui.moveTo(1670, 800, duration=0.6)#拖动鼠标到滑块结尾处
time.sleep(1)
pyautogui.mouseUp()#松开鼠标
经过本人测试这种方法适合任何反selenium的网站(能不适合吗?不就是按键精灵吗?说的好高大上 啊哈哈哈)
具体代码就不贴了
有任何问题可以加我 q:1374522338
留言看见也会解答!
下一篇:针对淘宝反selenium的反反爬措施详讲2-----pyppeteer
现在某猫和某宝在反反selenium的道路上越越来恶毒了,大部分是检测webdriver的关键符(网上有很多介绍这里就不一一介绍了)当我们遇到反selenium那该怎么办???????????????下面进入我们的正文!!!!!!!!!!!!!!pyautogui利器pyautogui是一个鼠标键盘的一个库,由于它是真实模拟鼠标和键盘事件所以只能开有界面哦!下面是一些pyautogui的一些...
Selenium 操作被屏蔽
使用selenium自动化网页时,有一定的概率会被目标网站识别,一旦被检测到,目标网站会拦截该客户端做出的网页操作。
比如淘宝和大众点评的登录页,当手工打开浏览器,输入用户名和密码时,是能正常进入首页的,但是如果是通过selenium打开, 会直接提示验证失败,点击框体重试。
本文介绍一种办法,不需要修改浏览器属性,不需要注入JavaScript脚本,也能轻松绕过网站检测。
Selenium为何会被检测
每一个浏览器访问网站时,都会带上特定的指纹特征,网站会解析这些特征,从而
第一次发文没啥经验 很多都是借鉴若有侵权请告知 必更改 开源代码只供学习交流请勿用作其他用途!!!
get_img()#这个函数是获取rgb格式屏幕截图,可用于截图一次识别多个元素
imgclick()#主要的识别图片点击函数,只选取一个点点击,可调节xy轴偏移值(识别图片a位置点击另一b位置)默认在一定范围内随机点击(可自行调节范围)图片识别率(若发现有很多误识别请调节识别率1为百分百匹配默认0.8)
imgcheck()#
检测图片返回bgr数值,可用于判断按钮按下的颜色变化
下面是代码区
这个 python 库是我用的比较多的第三方库了,因为它能帮我自动化操作许多事情,而且跨平台,非常好用。可以说是 python 中的按键精灵了。它不仅可以操作鼠标,还能操作键盘,屏幕截图,还能生成一些简单的交互窗口,在自动化操作方面提供的功能还是非常全面的。
python3 -m pip install pyautogui -i https://mirrors.aliyun.com/pypi/simple
以下操作都是已经引入了 pyautogui。
import pyautogui
最近公司有个新需求,大体流程是这样的,进入天津市市场主体信用信息公示系统,根据excel中表格的企业名称或税号查询企业的股东信息,查到之后获取股东信息的税号,然后再分别查询股东的股东,最后把查询结果录入excel。
读excel——>查询企业股东——》获取股东税号——》输入股东...
本身是做数据科学这方面,因部门急接了个自动化测试脚本的活儿,部门没人
会用python,故被领导找到,应要求学习了一下客户端和网页端的自动化测试操作,在此记录一下大概流程和注意点,供自己今后参考和备忘,不严谨勿喷。
1.
Pyautogui图形用户界面自动化操作
Python的自动化测试包有很多,因时间有限,选择
pyautogui,直接通过屏幕定位来操作鼠标和键盘,不用抓取窗口句柄等结构,简单粗暴方便。
这里以win10系统自动操作PLSQL数据库软件为例:
# -*- coding: utf-8 -*