模拟淘宝登录
def login_taobao():
print(‘开始登录…’)
try:
login_url=‘https://login.taobao.com/member/login.jhtml’
driver.get(login_url)
input_login_id = wait.until(EC.presence_of_element_located((By.ID, ‘fm-login-id’)))
input_login_password = wait.until(EC.presence_of_element_located((By.ID, ‘fm-login-password’)))
input_login_id.send_keys(‘your account’) # 用你自己的淘宝账号替换
input_login_password.send_keys(‘your password’) # 用你自己的密码替换
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ‘.fm-button.fm-submit.password-login’)))
submit.click()
is_loging = wait.until(EC.url_changes(login_url))
return is_loging
except TimeoutException:
print(‘login_taobao TimeoutException’)
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ‘.fm-button.fm-submit’)))
submit.click()
is_loging = wait.until(EC.url_changes(login_url))
if is_loging:
return is_loging
else:
login_taobao()
if name == ‘__main__’:
is_loging=login_taobao()
if is_loging:
print(‘已经登录’)
运行代码后可以看到程序自动的调起了一个Chrome浏览器并访问了淘宝的登录页面,自动的输入了用户淘宝账号和密码,自动的点击了登录按钮,但出现了一个滑动验证的控件,要求滑动验证。
![淘宝登录需要滑动验证](https://img-blog.csdnimg.cn/direct/38fbcda2269749349039efee7cebfb63.png#pic_center)
人工拖动滑动验证控件,显示验证失败。
![淘宝滑动验证失败](https://img-blog.csdnimg.cn/direct/9bbe35242f9b4d5a8b2db53ffef9e85b.png#pic_center)
这是因为淘宝有一套反爬机制识别是否是机器自动在登录。如果是人工打开浏览器,手工输入账号密码登录就不会弹出滑动验证控件进行验证。在网上有很多办法,如可以通过代理修改chormdriver的识别码,这里介绍通过Selenium如何接管已经运行的Chrome浏览器来实现规避淘宝的验证。
#### 3、Selenium接管已经运行的Chrome浏览器
##### 1)启动Chrome的远程调试模式
通过
`chrome.exe --remote-debugging-port=9222 --user-data-dir='某个存在的文件夹地址'` 启动Chrome的远程调试模式,启动一个Chrome浏览器。
找到chrome的安装目录,找到chrome.exe ,通过cmd命令行执行上面的命令。
![启动Chrome远程调试模式](https://img-blog.csdnimg.cn/direct/5b86f9216d7f4540ab3fa6639f32416c.png#pic_center)
运行上面命令后,就会弹出一个chrom