0
点赞
收藏
分享

微信扫一扫

selenium回炉重造,打造更稳定的自动化运行

对于之前写了一个selenium版本的模拟快排,写的比较早,现在把这套代码再进行重新优化。此次主要改造代码的稳定性和调优。下面就主要改造的点进行简单介绍

改造一:加了内页浏览滚动,已经浏览次数


通过js控制滚动条的滚动,模拟用户浏览目标网站页面,再进行内页点击,最后退出浏览器。


selenium回炉重造,打造更稳定的自动化运行_百度


改造二:改用鼠标随机移动点击


首先是获取元素的坐标以及宽高,从而获取元素的随机坐标,用于鼠标移动点击。


selenium回炉重造,打造更稳定的自动化运行_服务器_02


改造三:元素显性等待


此次获取元素全部用元素的显性等待self.wait = WebDriverWait(self.driver, 10),目的是保证页面元素稳定获取,监听。这样就不需要特定等待固定时间,加快了元素的获取速度。


selenium回炉重造,打造更稳定的自动化运行_验证码_03


旧方法


旧方法是用鼠标元素直接点击,这样点击,可能找不到点击痕迹


selenium回炉重造,打造更稳定的自动化运行_服务器_04

新方法


新方法是拿到坐标后,进行鼠标移动定位点击。


selenium回炉重造,打造更稳定的自动化运行_服务器_05


改造四:加入竞价点击和热点点击


此次在模拟点击过程中,加入了竞价点击的步骤,保证模拟点击的真实性。


竞价点击


selenium回炉重造,打造更稳定的自动化运行_服务器_06


热点点击


selenium回炉重造,打造更稳定的自动化运行_验证码_07


对于之前第一批用户在运行的时候,出现了一些百度识别验证的错误。对于这个错误,就不是代码本身的错误了。主要跟三个方面有关系。


由于代理ip平台提供的ip质量不高,大部分是已经被用过的ip,这部分ip肯定是被百度识别了,再分配这个ip去运行快排任务,自然肯定会被识别到。这就出现了有些ip可以运行,有些ip出现百度验证码的局面。


selenium回炉重造,打造更稳定的自动化运行_验证码_08


解决方法:1、换一家高质量的ip平台。2、强行识别百度验证码。3、换拨号服务器进行运行


第一种:换高质量ip平台


这里我用某某快代,也会出现一定的验证码问题,是否某某芝麻平台可能会好点


强行识别验证码


出现验证码的话,可以强行识别,这里我在代码里,也加入了识别验证的代码。



selenium回炉重造,打造更稳定的自动化运行_服务器_09


换拨号服务器


拨号服务器里的ip应该质量较高,在拨号服务器里应该运行较为稳定,而且也不用去管理,直接挂着就行了。我也写了同类型的拨号方式,也可以在拨号服务器中使用。



selenium回炉重造,打造更稳定的自动化运行_验证码_10


目前拨号服务器还未有完善好,不过selenium代理的方式在已经差不多可以运行了。现在源码已经挂在我的商城中了。商城入口:http://www.pyseo.club

如果购买的用户,不会安装或出现问题,可以随时咨询我,我可以协助安装。

举报

相关推荐

0 条评论