针对淘宝反selenium的反反爬措施详讲1-----pyautogui

现在某猫和某宝在反反selenium的道路上越越来恶毒了,大部分是检测webdriver的关键符(网上有很多介绍这里就不一一介绍了)当我们遇到反selenium那该怎么办???????????????下面进入我们的正文!!!!!!!!!!!!!!

pyautogui利器

pyautogui是一个鼠标键盘的一个库,由于它是真实模拟鼠标和键盘事件所以只能开有界面哦!
下面是一些pyautogui的一些基础用法:

获取当前屏幕分辨率

screenWidth, screenHeight = pyautogui.size()

获取当前鼠标位置

currentMouseX, currentMouseY = pyautogui.position()

鼠标移动坐标为100,100位置 绝对移动

pyautogui.moveTo(100, 100)

鼠标左击

pyautogui.click()

鼠标向下移动 相对移动

pyautogui.moveRel(None, 10)

鼠标双击

pyautogui.doubleClick()

用缓动/渐变函数让鼠标2秒后移动到(1000,500)位置

pyautogui.moveTo(1000, 500, duration=2, tween=pyautogui.easeInOutQuad)

在每次输入之间暂停0.25秒

pyautogui.typewrite(‘Hello world!’, interval=0.25)

键盘点击esc

pyautogui.press(‘esc’)

按住shift键

pyautogui.keyDown(‘shift’)

放开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

``

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页