前言

该文章描述了代码登陆界面之后如何保存cookie并且之后的访问继续使用cookie来进行访问的操作。主要使用库http.cookiejar,urllib.request(),urllib.parse

新建时间:20191223

天象独行

  首先,我们先了解一下Cookie这个作用,主要作用是用来提供一个证明,证明用户的信息。比方说在登陆账号之后,会接收到一个cookie,接下来的访问服务器通过cookie就可以确定账号信息,并且分配相对应的资源以及不用重复输入账号密码。

  我们来说明一下http.cookiejar功能,主要功能是对接收下来的Cookie进行存储。下面是其他功能:

  • CookieJar
    • 管理储存cookie,像传出的http请求添加cookie
    • cookie存储在内存中,CookieJar示例回收后cookie将自动消失
  • FileCookieJar
    • 是CookieJar的字类
    • cookie保存在文件中
  • MozillaCookiejar
    • 是FileCookieJar的子类
    • 与moccilla浏览器兼容
  • LwpCookieJar
    • 是FileCookieJar的子类
    • 与libwww-perl标准兼容

  注释关于urllib.request,urllib.parse内容可以查看如下网址:

   https://www.cnblogs.com/aaron456-rgv/p/12051754.html

  保存Cookie案例:

 urllib.parse
import http.cookiejar

'''
案例情景:
    1;使用Python3登陆网址,并且报错接收的Cookie
    2;通过保存下来的Cookie来继续访问URL
'''
#创建一个cookiejar对象,用来存储获取的cookie
new_cookie = http.cookiejar.CookieJar()
#通过cookiejar对象来自定义一个handler
new_handler = urllib.request.HTTPCookieProcessor(new_cookie)
#设定一个opener
new_opener = urllib.request.build_opener(new_handler)
'''
上面的操作,如果访问下来的cookie会被保存到对象new_cookie当中,换句话说以后通过new_openenr来访问URL会自动将保存的cookie发送出去。
'''
'''
一;访问登陆界面
'''
#设定URL
url1 = "http://192.168.1.136"
#设定请求头字典
new_headers = {
    "Host": "192.168.1.136",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
    "Accept-Encoding": "gzip, deflate",
    "Content-Type": "application/x-www-form-urlencoded",
    "Content-Length": "43",
    "Origin": "http://192.168.1.136",
    "Connection": "close",
    "Referer": "http://192.168.1.136/index.php",
    "Cookie": "PHPSESSID=fe78ef94f649511499b4568c82c240af",
    "Upgrade-Insecure-Requests": "1"
}
#设定Post传参值
new_post = {
    "user_name":"abc123",
    "pwd":"abc123",
    "x":"30",
    "y":"10"
}
#URL编码Post传参值
new_post_url = urllib.parse.urlencode(new_post).encode()
#生成请求request
new_request = urllib.request.Request(url=url1,headers=new_headers)
#发送请求
new_result = new_opener.open(new_request,data=new_post_url)
'''
上面代码已经发送登陆请求,之后cookie会被存储到new_Cookie里。
'''
'''
二;随意访问登陆之后的页面,查看是否能个访问
'''
url2 = 'http://192.168.1.136/user.php?act=news_manage' new_result2 = new_opener.open(url2) print(new_result2.read().decode(encoding="GBK"))

  结果:

Python3---高级功能---cookie存储

相关文章:

  • 2021-06-27
  • 2021-07-11
  • 2021-05-24
  • 2021-12-12
  • 2022-12-23
  • 2021-09-14
  • 2021-05-27
猜你喜欢
  • 2021-12-03
  • 2022-02-26
  • 2022-12-23
  • 2021-12-02
  • 2022-12-23
  • 2021-09-10
相关资源
相似解决方案