使用selenium模拟知网登录
之前都是用phantomjs和selenium模拟浏览器动作的,后来phantomjs不再更新,就转用chrome了
本次模拟登录的网站是中国知网http://login.cnki.net/login/?platform=kns&ReturnURL=http://nvsm.cnki.net/
分析:正常情况下我们登录网页肯定是这样,首先找到输入账号的地方输入账号,找到输入密码的地方输入密码,最后再点击登录键。
我们使用selenium同样也遵循人的这种思路,首先找到输入账号和输入密码的标签节点,然后发送相应的信息过去,最后再找到登录按钮的节点,模拟点击即可。
下面用selenium和chrome浏览器模拟登录,首先F12打开Chrome调试窗口,找到账号输入框和密码输入框的标签节点:
用代码来实现模拟登录:
#!usr/bin/env python
# coding:utf-8
from selenium import webdriver
webdriver = webdriver.Chrome() #创建一个空的浏览器
webdriver.get('http://login.cnki.net/login/?platform=kns&ReturnURL=http://nvsm.cnki.net/') #请求网页
name = webdriver.find_element_by_name('TextBoxUserName') #获取用户名节点
name.send_keys('user') #往用户名节点框输入账号,'user'请修改为你的用户名
password = webdriver.find_element_by_name('TextBoxPwd') #获取密码节点
password.send_keys('password') #往密码节点框输入密码,'password'请修改为你的密码
login_button = webdriver.find_element_by_id('Button1') #获取登录按钮的节点
login_button.click() #点击登录按钮
最后登录成功界面如下: