zoukankan      html  css  js  c++  java
  • 使用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() #点击登录按钮

    最后登录成功界面如下:

  • 相关阅读:
    用icas下载文件报错
    jboss7.1.1相关error及解决办法
    Base-64编码介绍
    上传文件路径问题
    ZooKeeper安装(Windows)
    DBCP连接池配置参数说明
    Linux普通用户使用sudo权限启停apache服务
    线程池中的队列
    java线程池原理及实现方式
    https基础流程
  • 原文地址:https://www.cnblogs.com/sjfeng1987/p/9863264.html
Copyright © 2011-2022 走看看