淘宝自动登录

陆陆续续一直有做过淘宝方面的爬虫,登录页的滑块是个大麻烦.

网上简单找了下大概有三种法子:

1.淘宝绑定微博,直接使用微博账号登录

2.直接扫码登录

3.输入账号密码+滑块验证

这里我就总结下滑块吧

18年4月份年做过一次,那时候是用的破解版的jxbrowser+java robot模拟各种鼠标点击,账号密码都是后台随机截断成n份,分n次,每次随机m毫秒,设置进剪切板再模拟ctrl v粘贴到账号密码input,这相当于模拟手工操作了;效果出奇的好,居然验证码都不出来,可以直接登录;

上图是个催单外挂,那时候我老婆是个天猫客服,手里四个天猫店铺要接待.靠业绩提成,一笔订单在哪个客服手里成交的,那这笔订单金额就算谁的业绩.结算工资就按业绩来提成,不同业绩额的提成档次也不通.就是说业绩越高提成的百分比也会越高.但是有好多顾客是自己静默下单,也就是说她不咨询客服直接自己看中哪款商品就自己下单支付了,这样的订单金额系统是不会归到任何客服业绩里面的,就相当于是个无效业绩.我做的这个插件类似千牛的催单功能,但是我老婆的公司把千牛的催单功能关了;所以我写了这个外挂,我老婆在家上晚班的时候就开启给她用.

具体就是登录四个天猫店铺后台账号,四个线程不断轮询后台提交订单未付款的单据,我的轮询时间很短3秒左右,天猫好像也没有对我的账号做出密集异常访问的监控;一旦有客户提交了订单但是还没有付款,被我的外挂轮询到了,我做了个类似qq右下角弹框提示的功能并给每个店铺配上了音频,有新订单就会弹框+播放音频,这时我老婆就可以快速定位到该订单的客户,发送一条地址核对的消息,如果用户付款,那么这笔业绩就成功归到了我老婆的业绩里面

讲了这么个小插曲,哈哈

这几天朋友公司需要做一个天猫自动发货的插件,本来想不用自动化的东西,想直接拿cookie在后台尝试提交数据的,尝试许久无果,淘宝在提交数据上还是做了比较严格的验证

尝试无果后再尝试以前的方法使用jxbrowser,也不行了出了滑块验证,在jxbrowser里面就算人工手动输入账号密码滑动滑块也不行,直接异常,这样应该就是jxbrowser被识别了吧;

再换方法,用selenium + chromedriver,一开始也不行跟jxbrowser一样,识别异常;

不甘心找资料,有个解决方案是说开启chromedrive的开发者模式,我用的java

options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));

加上这个之后,我手动输入账号密码滑动滑块可以登录成功

然后我尝试换成自动化输入账号密码,action模拟人工拖动(自己写了个简单的方法)滑块,最后也还是不行,人工拖动滑块可以验证通过,使用机器模拟死活都不通过.

继续找资料,找到写国外资料

https://intellipaat.com/community/5490/can-a-website-detect-when-you-are-using-selenium-with-chromedriver

大概意思操作就是咱现在使用的chromedriver,里面有个变量$cdc_asdjflasutopfhvcZLmcfl_会被检测到,从而判断你使用了selenium,我们可以使用16进制的编辑器来编辑chromedriver,将里面的$cdc替换成其他的同长度的字符来代替,例如$abc $efg...

我这里没有自己去改,我直接使用的一个别人改好的来用的.把我下载官方的chromedriver替换掉,重启程序,神乎其技,跑通了...

OK,就分享到这里,接下来我要研究下尝试selenium多线程来提一下效率

欢迎同样对这些玩意感兴趣的朋友来讨论!!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章