主要用到python的selenium库,通过模仿浏览器行为+定位登录所需的标签位置,实现网页登录功能.最后在码云(gitee)上测试自动登录功能.
关于selenium的使用前准备可以看到我之前的一篇文章python网络爬虫--下载图片.
我们有许多方法对页面的元素进行定位,对于不同的元素,我们使用最优的定位方法即可。Selenium提供了下面的方法进行元素定位:
通过一个例子来大概说明怎么使用这些方法
<html>
<body>
<form id="loginForm">
<input name="username" type="text" />
<input name="password" type="password" />
<input name="continue" type="submit" value="Login" />
form>
body>
<html>
userName = driver.find_element_by_name("username")
在定位到元素后,我们要将对应的用户名填入表单,使用send_keys
方法
userName.send_keys("UserName")
passWord = driver.find_element_by_css_selector("input[type='password']")
passWord.send_keys("PassWord")
通过模拟登录码云(gitee)
,测试是否成功
首先,在浏览器输入地址https://gitee.com/login
,进入登录界面
然后,进入开发者模式,找到表单对应的元素.
从以下三张图可以看到用户名
,密码
,登录按钮
分别对应的元素.然后通过上面介绍的元素选择方法,将对应的值提供给表单即可.
具体代码如下:
from selenium import webdriver
import time
def main():
url = "https://gitee.com/login"
# 这里改为你的chromedriver地址
ChromeDriverPath = "path/to/chromedriver"
driver = webdriver.Chrome(executable_path=ChromeDriverPath)
driver.get(url)
# 这里将UserName改为你自己的
driver.find_element_by_id("user_login").send_keys("UserName")
# 修改PassWord
driver.find_element_by_id("user_password").send_keys("PassWord")
# 获取到登录按钮的driver后,使用click()函数,模拟点击button
driver.find_element_by_css_selector("input[name='commit']").click()
time.sleep(20)
driver.quit()
if __name__ == "__main__":
main()