利用selenium模拟登陆
第一部:利用selenium登陆 导入selenium库
from selenium import webdriver
明确模拟浏览器在电脑中存放的位置,比如我存在当前目录
chromePath = r'.\chromedriver.exe'
用selenium的webdriver方程指明浏览器的路径,同时打开一个浏览器。模拟浏览器有多种可选,比如Firefox, Safari。本次用的是谷歌的模拟浏览器。注意:'.Chome'是大写字母。
wd = webdriver.Chrome(executable_path= chromePath)
让webdriver为你填写用户名和密码
wd.find_element_by_xpath('用户名选项卡位置').send_keys('用户名')
wd.find_element_by_xpath('密码选项卡位置').send_keys('密码')
让webdrive点击登陆,若是按钮就选择用click(),若是表单就选择submit()。
wd.find_element_by_xpath('登陆按钮所在位置').click() #若是按钮
wd.find_element_by_xpath('登陆按钮所在位置').submit() #若是表单
登陆完成,所有的cookies现在都存在了'wd'里面,可随时调用。
第二部:将selenium的cookies传入requests 导入requests库,并构建Session()
import reqeusts
req = requests.Session()
从‘wd'里调出cookies
cookies = wd.get_cookies()
将selenium形式的cookies转换为requests可用的cookies。
for cookie in cookies:
req.cookies.set(cookie['name'],cookie['value'])
通过上述方法可以说是万能的登录方法,重点注意的是一定要下载谷歌模拟器chromedriver.exe。
全部代码:
# encoding=utf8
'''
解决中文乱码
'''
import sys
reload(sys)
sys.setdefaultencoding('utf8')import requests
from selenium import webdriver
chromePath = r'.\chromedriver.exe'
wd = webdriver.Chrome(executable_path= chromePath) #构建浏览器
loginUrl = 'http://www.weibo.com/login.php'
wd.get(loginUrl) #进入登陆界面
wd.find_element_by_xpath('//*[@id="loginname"]').send_keys('xxxxx') #输入用户名
wd.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[2]/div/input').send_keys('xxxxx') #输入密码
wd.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[6]/a').click() #点击登陆
req = requests.Session() #构建Session
cookies = wd.get_cookies() #导出cookie
for cookie in cookies:
req.cookies.set(cookie['name'],cookie['value']) #转换cookies
print(cookies) #打印cookies
【利用selenium模拟登陆】转载于:https://www.cnblogs.com/peterpoker/p/9631630.html
推荐阅读
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
- 【万伽复利】什么是复利(如何利用复利赚钱?)
- 三门问题(蒙提霍尔悖论)分析与Golang模拟
- 投石机可连续抛射石头【Algodoo|投石机可连续抛射石头【Algodoo | 物理模拟】
- 苹果手机如何利用库乐队自制铃声
- “没有利用价值的人是很受冷遇的。”
- Java+Selenium|Java+Selenium Web UI自动化测试的一些小总结
- spring5源码系列--循环依赖|spring5源码系列--循环依赖 之 手写代码模拟spring循环依赖
- 可悲的好人
- 利用好你的暗时间,让成长无处不在