前言:
Selenium 模拟登陆的方式较简单,但是速度较慢。
准备工作:
1、安装Chorme浏览器
2、下载Chorme浏览器对应的ChromDriver(根据浏览器的版本下载ChromDriver)
具体操作:
本例模拟豆瓣登陆,
1、分析登陆页面,本例模仿密码登陆,未模仿验证码登陆;
2、代码如下:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
#(1)如果chromedriver.exe和程序不在同一目录,就填写其路径
driver = webdriver.Chrome("chromedriver.exe")
#(2)发送请求
driver.get("https://accounts.douban.com/passport/login")
#(3)阻塞程序,此时需要对页面进行操作
input("请点击密码登陆,再点击任意键继续")
#(4)给登陆面来个快照
driver.save_screenshot("douban.png")
#(5)找到输入'username'的标签
element_name = driver.find_element_by_id("username")
element_name.clear()
#(6)发送用户名
element_name.send_keys("******")
time.sleep(2)
#(7)找到输入'password'的标签
password = driver.find_element_by_id("password")
password.clear()
#(8)发送密码
password.send_keys("******")
time.sleep(2)
#(9)模拟回车
element_name.send_keys(Keys.RETURN)
time.sleep(5)
#(10)给登陆后的页面一个快照
driver.save_screenshot("test.png")
time.sleep(100)
#退出登陆
driver.quit()
3、代码说明:
a、针对代码中的(3),使用input阻塞程序,需要此时手动点击密码登陆的选项,点击后在让程序继续进行,如下图:
b、代码(4)和(10)分别保存了两张登陆前后的照片,进行查看,可以知道登陆成功否
后记:
提高js水平才是学好爬虫的好道路