python获取页面cookies

这篇文章主要是对之前python实现简易登陆作的补充,之前的cookies都自己手工打开浏览器,进行登陆操作,然后复制cookies的方式来获取cookies,但是今天就是要解决这个麻烦,不用自己登陆,让代码自己去获取cookies。

python有个库urllib支持对页面cookies的操作,但是在实际使用过程中发现总是不起作用,很多页面使用代码操作与实际使用浏览器操作是有差别的,既然非要打开浏览器来操作,那就让python来做这件事吧。

python+selenium是实现自动化测试的工具,让它去跑登陆的功能,然后去获取cookies,然后接下来的功能就交给python去跑吧。

# _*_ coding: utf-8 _*_

#引用要使用到的库

import requests

import time

from selenium import webdriver

from selenium.webdriver.common.keys import Keys


#定义好登陆使用的用户名与密码

username = 'xxxxx'

password='xxxxxx'

#定义操作火狐浏览器geckodriver.exe的驱动的路径,使用前一定要将火狐浏览器的安装路径与geckodriver.exe驱动的路径加入环境变量当中

executable_path = "D:\python\Tools\geckodriver.exe"

#打开浏览器

browser = webdriver.Firefox()

#打开要登陆的页面

browser.get('xxxxx')

#让页面停顿3秒,防止页面未加载完定位不到元素

time.sleep(3)

#找到页面输入用户名的地方

username_input = browser.find_element_by_id('textUsername')

#输入用户名

username_input.send_keys(username)

#找到页面输入密码的地方

password_input = browser.find_element_by_id('textPassword')

#输入密码

password_input.send_keys(password)

#回车登陆

password_input.send_keys(Keys.RETURN)

#让页面停顿3秒,防止页面未加载完定位不到元素

time.sleep(3)

#构造登陆使用的cookies

cookie = 'Username=' + username + '; Password=' + password + '; ' + browser.get_cookies()[0]['name'] + '=' + browser.get_cookies()[0]['value'] + '; ' + browser.get_cookies()[1]['name'] + '=' + browser.get_cookies()[1]['value']

#利用cookie的代码区

#退出浏览器

browser.quit()

get_cookies()方法得到的是个字典格式,大家可以自己尝试先将其获得的结果打印出来,然后根据HttpFox工具查看到的cookies的结构来构造。

还有关闭浏览器的操作browser.quit()一定要在全部操作结束之后再进行,因为关闭之后cookies也失效了,后面的操作也无法进行了。

你可能感兴趣的:(python获取页面cookies)