Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

淘宝滑动验证 #76

Closed
lnsane opened this issue Jul 12, 2019 · 17 comments
Closed

淘宝滑动验证 #76

lnsane opened this issue Jul 12, 2019 · 17 comments

Comments

@lnsane
Copy link

lnsane commented Jul 12, 2019

淘宝滑动验证不知道你有没有尝试过。。貌似在js中加入了判断是否是机器人模式了。只要selenium就会滑动不成功。

@leung0750
Copy link

淘宝滑动验证不知道你有没有尝试过。。貌似在js中加入了判断是否是机器人模式了。只要selenium就会滑动不成功。

貌似只要用到find定位元素就会失败,是吧...

@lnsane
Copy link
Author

lnsane commented Jul 27, 2019

淘宝滑动验证不知道你有没有尝试过。。貌似在js中加入了判断是否是机器人模式了。只要selenium就会滑动不成功。

貌似只要用到find定位元素就会失败,是吧...

是的,这个有什么主流得解决方案吗?

@leung0750
Copy link

如果允许有界面的话,试试WIN32吧,但从根本上来说还是JS破解,我有个朋友在公司是爬淘宝的,他的同事用node.js完成自动化登录来搞一个cookies池。如果不是想练技术,时间又尴尬,可以手动扫码登录,哈哈,也不慢

@lnsane
Copy link
Author

lnsane commented Jul 27, 2019

如果允许有界面的话,试试WIN32吧,但从根本上来说还是JS破解,我有个朋友在公司是爬淘宝的,他的同事用node.js完成自动化登录来搞一个cookies池。如果不是想练技术,时间又尴尬,可以手动扫码登录,哈哈,也不慢

node.js 自动化登陆,如果出现滑动验证,这个是怎么走流程得?有具体细节吗?

@leung0750
Copy link

意思是,用模拟器登录,大几率都会出现滑动验证码的,理论上来说,滑动后JS会根据你的行为过程得出的是一个是否为机器人的结果,如果用JS自动化登录,可能实际上是把“非机器人”结果直接发送过去,绕过中间滑动过程,简单来说就是去到登录界面,然后执行一段JS来实现登录。实现是一定可以实现的,就是看能不能做到而已

@lnsane
Copy link
Author

lnsane commented Jul 27, 2019

意思是,用模拟器登录,大几率都会出现滑动验证码的,理论上来说,滑动后JS会根据你的行为过程得出的是一个是否为机器人的结果,如果用JS自动化登录,可能实际上是把“非机器人”结果直接发送过去,绕过中间滑动过程,简单来说就是去到登录界面,然后执行一段JS来实现登录。实现是一定可以实现的,就是看能不能做到而已

不是很理解。因为selenium得本质也是在浏览器上输入JS然后操作DOM得过程,如果你说的直接绕过去,听起来想是找到了给淘宝登陆API直接请求数据了,不过我感觉淘宝不可能给第三方随便开放登陆API权限。

@fangyuandoit
Copy link

1 selenuim 需要设置一下,否则可以检测出来是不是selenium
2 滑动的时候不要匀速划过去。试试匀加速 。
至于行不行还不知道

@lnsane
Copy link
Author

lnsane commented Aug 23, 2019

1 selenuim 需要设置一下,否则可以检测出来是不是selenium
2 滑动的时候不要匀速划过去。试试匀加速 。
至于行不行还不知道

不行试过了

@JasonLaw1994
Copy link
Contributor

我试着使用使用 Python + Selenium 破解滑块验证码 - aneasystone's blog中所提到的easing来模拟‘真实人类的拖动’,但是不能够生效,滑块一下子就被拖过去了,并不是一个‘先快后慢’的过程。

之后我自己手动去拖动滑块,还是不行,是不是因为淘宝已经断定了那个浏览器就是“机器人”,而不是“死的机器”?所以不管背后操作它的人是机器人它自己,还是真实的人类,淘宝都不会响应。

@leung0750
Copy link

我试着使用使用Python + Selenium破解滑块验证码- aneasystone's blog中所提到的easing来模拟'真实人类的拖动',但是不能够生效,滑块一下子就被拖过去了,并不是一个'先快后慢'的过程。

之后我自己手动去拖动滑块,还是不行,是不是因为淘宝已经断定了那个浏览器就是“机器人”,而不是“死的机器”?所以不管背后操作它的人是机器人它自己,还是真实的人类,淘宝都不会响应。

你理解没错,因为浏览器模拟有webdriver.navigator参数或者 navigator in webdriver,你要先隐藏参数,否则会被检测到

@JasonLaw1994
Copy link
Contributor

你说的应该是window.navigator.webdriver这个变量吧,通过

# 设置为开发者模式,避免被识别
options.add_experimental_option('excludeSwitches', ['enable-automation'])

是可以避免的,window.navigator.webdriver这个变量的值是undefined(没有加那个option之前,值是true)。

所以应该是其他什么东西被用来“判断当前浏览器是否是机器人”,但是我不知道那个东西是什么。

@leung0750
Copy link

你说的应该是window.navigator.webdriver这个变量吧,通过

# 设置为开发者模式,避免被识别
options.add_experimental_option('excludeSwitches', ['enable-automation'])

是可以避免的,window.navigator.webdriver这个变量的值是undefined(没有加那个option之前,值是true)。

所以应该是其他什么东西被用来“判断当前浏览器是否是机器人”,但是我不知道那个东西是什么。

有啊,太多了,例如鼠标行为,还可以比对指纹库,按照你说的设置那就是selenium,而且selenium有很多特征可以检测出来

@JasonLaw1994
Copy link
Contributor

我试着使用使用Python + Selenium破解滑块验证码- aneasystone's blog中所提到的easing来模拟'真实人类的拖动',但是不能够生效,滑块一下子就被拖过去了,并不是一个'先快后慢'的过程。
之后我自己手动去拖动滑块,还是不行,是不是因为淘宝已经断定了那个浏览器就是“机器人”,而不是“死的机器”?所以不管背后操作它的人是机器人它自己,还是真实的人类,淘宝都不会响应。

我在网上找了一下,找到了解决方法,大家可以参考一下淘宝爬虫之自动登录 - 简书

@lnsane
Copy link
Author

lnsane commented Sep 2, 2019

我试着使用使用Python + Selenium破解滑块验证码- aneasystone's blog中所提到的easing来模拟'真实人类的拖动',但是不能够生效,滑块一下子就被拖过去了,并不是一个'先快后慢'的过程。
之后我自己手动去拖动滑块,还是不行,是不是因为淘宝已经断定了那个浏览器就是“机器人”,而不是“死的机器”?所以不管背后操作它的人是机器人它自己,还是真实的人类,淘宝都不会响应。

我在网上找了一下,找到了解决方法,大家可以参考一下淘宝爬虫之自动登录 - 简书

中间层拦截修改JS的是可以的,但是我自己没有成功过。

@JasonLaw1994
Copy link
Contributor

@lnsane 请看我提交的pull request #86

@lnsane
Copy link
Author

lnsane commented Sep 3, 2019

@lnsane 请看我提交的pull request #86

No,看了你的逻辑代码里面,没有应对滑动代码的逻辑,一般情况直接输入账号密码就行了,但是在某些时候会出现滑动条的情况(比如密码输入错误的时候)

@JasonLaw1994
Copy link
Contributor

请看一下我之前发的一些东西,之前发的有包含“处理拖动滑块”的。

个人建议:不要一味想着做伸手党,也可以自己做一下research。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants