目录
问题背景
很久以前有个网站上数据交互自动化,需要登录后才能进行,就临时学了selenium,现在也用不上了,就总结一下。
整个交互流程:先是输入密码,然后鼠标拖动验证码滑块完成人机验证,登录完成后通过cookie或者session授权进行数据交互。
问题分析
这个问题难点在于:
1、如何驱动网页的鼠标键盘交互,拿到网页中的重要信息;
2、滑块验证码正确滑动以及人手的轨迹模拟;
第一个问题中键鼠交互其实有很多方案可以实现,不论是使用第三方库还是通过系统API等方案,但是后需要拿cookie的话,就麻烦了,毕竟是不在一个进程里的逻辑;所以综合起来,用selenium最方便,Selenium可以说是非常强大的工具了。
第二个问题,在交互技术底层,其实是形成一个请求数据包提交到服务器来完成人机验证工作的。目前其实已经有很多个方案,解决问题可以从模拟人机交互入手,也可以从数据包构造入手。
环境部署
安装环境(注意Chromedriver版本与Chrome版本一致):selenium 安装与 chromedriver安装 - Rogn - 博客园
[小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建 - 小北@Alan - 博客园
user data保持:selenium设置chrome浏览器保持登录方式两种options和c