zoukankan      html  css  js  c++  java
  • 003 python接口 cookies

    /*
    时间:2018/09/17
    功能:cookie
    目录: 
      一: 概念
            1 保存
            2 存储
            3 时间 
            4 目的
      二: 结构
      三: 查看
      四: 获取
            1 url
            2 header
            3 body
      五: 禅道登录 - cookie */

    一: 概念

      1 保存

        保存客户端,一般由浏览器存储。
      2 存储

        一般加密存储,因保存客户端,很难保证数据不被非法访问,所有cookies不宜保存敏感数据。
      3 时间

        cookie保存多长时间,有服务器决定的。
      4 目的

        下次访问网站直接使用cookie。

    二: 结构

        cookie ={   u'domain': u'.cnblogs.com',  # 来源域名 
                    u'name': u'.CNBlogsCookie',  # cookie的名称 - 具有唯一
                    u'value': u'xxxx',            # cookie的值
                    u'expiry': 1554959887,        # 有效终止日期
                    u'path': u'/',                #  
                    u'httpOnly': True,            # 
                    u'secure': False}             #

    三: 查看

    1 : 访问网站: https://www.baidu.com/

    2 : 在Headers查看Cookies。 

    1 : 直接在Cookies里,直接查看Cookies。 

    1 :  在Raw里查看Cookies。


    四: 获取
      1 url

    1 : 访问网站: http://zzk-s.cnblogs.com/s/blogpost。

    2 : url变为: http://zzk-s.cnblogs.com/s/blogpost?AspxAutoDetectCookieSupport=1。?后面是cookie。

    # coding:utf-8
    import requests
    
    # 请求首页
    url = "http://zzk-s.cnblogs.com/s/blogpost"
    r1 = requests.get(url)
    
    # 获取cookie
    strUrl = r1.url                 # 获取url
    cookie = strUrl.split("?")[1]   # 切片获取
    
    # 请求搜索
    param = {
        "Keywords" : "001 python接口 get请求"
    }
    
    header = {
        "Cookie" : cookie  # 格式: name = value; name2 = value
    }
    r2 = requests.get(url, params = param, headers = header)
    print(r2.text)

    1 : 方法一  cookies放入headers头部传入。

    2 : headers内cookie格式是,name = value; name2 = value。

    # coding:utf-8
    import requests
    from urllib.parse import parse_qsl
    
    # 请求首页
    url = "http://zzk-s.cnblogs.com/s/blogpost"
    r1 = requests.get(url)
    
    # 获取cookie
    strUrl = r1.url                         # 获取url
    cookieList = strUrl.split("?")[1]       # 切片获取
    cookie = dict(parse_qsl(cookieList))    # 转为字典
    
    # 请求搜索
    param = {
        "Keywords" : "001 python接口 get请求"
    }
    r2 = requests.get(url, params = param, cookies = cookie)
    print(r2.text)

    1 : 方法二  cookies=字典格式或者jar格式。

    1 : 查看返回结果,使用cookie可以搜索成功。


      2 header

    1 : 访问网站: http://zzk-s.cnblogs.com/s/blogpost。

    2 : 查看重定位之前的页面信息 - header部分,有Set-Cookie,包含cookie信息。

    # coding:utf-8
    import requests
    from urllib.parse import parse_qsl
    
    # 请求首页
    url = "http://zzk-s.cnblogs.com/s/blogpost"
    r1 = requests.get(url, allow_redirects = False)    # 禁止重定位
    
    # 获取cookie
    headerList = r1.headers
    header = {
        "Cookie" : headerList["Set-Cookie"]
    }
    
    # 请求搜索
    param = {
        "Keywords" : "001 python接口 get请求"
    }
    r2 = requests.get(url, params = param, headers = header)
    print(r2.text)

    1 : 使用python获取cookie,再发送搜索请求。

      3 body

     

    1 : 访问网站: http://zzk-s.cnblogs.com/s/blogpost。

    2 : 查看重定位之前的页面信息 - body部分,包含所需cookie信息。

    # coding:utf-8
    import requests
    import re
    from urllib.parse import parse_qsl
    
    # 请求首页
    url = "http://zzk-s.cnblogs.com/s/blogpost"
    r1 = requests.get(url, allow_redirects = False)
    print(r1.status_code)
    print(r1.text)
    
    # 正则提取
    cookieList = re.findall("blogpost?(.+?)"", r1.text)
    print(cookieList[0])
    cook = dict(parse_qsl(cookieList[0]))    # 转为字典
    print(cook)
    
    # 请求搜索
    param = {
        "Keywords" : "001 python接口 get请求"
    }
    r2 = requests.get(url, params = param, cookies = cook)
    print(r2.text)

    1 : 使用python获取cookie,再发送搜索请求。

    1 : 查看请求结果,服务端返回数据正确。

    五: 禅道登录 - cookie

    # coding:utf-8
    import requests
    import re
    
    # 禅道登录
    url = "http://127.0.0.1/zentao/user-login.htm"
    
    body = {
        "account": "admin",
        "password": "123456",
        "keepLogin[]": "on",
        "referer": "/zentao/my.html"
    }
    requests.get(url)
    requests.post
    
    r = requests.post(url, data = body)
    print(r.status_code)
    print(r.content.decode("utf-8"))    # 中文解码
    
    # 获取cookies
    cookiesJar = r.cookies          # Jar的格式
    print(cookiesJar)
    cookiesDict = dict(cookiesJar)  # 字典格式
    print(cookiesDict)
    
    # 访问请求 - 登录之后
    url2 = "http://127.0.0.1/zentao/my/"
    r2 = requests.get(url2, cookies = cookiesJar)
    print(r2.content.decode("utf-8"))

    1 :使用python获取cookie,再请求我的地盘url。

    1 : 查看请求结果,客户端访问成功。

  • 相关阅读:
    apache配置文件参数优化
    apache 虚拟主机详细配置:http.conf配置详解
    Apache安装问题:configure: error: APR not found . Please read the documentation
    lamp安装
    Linux运维常用命令总结
    mysql主从日志的定期清理
    python写的分析mysql binlog日志工具
    mysql5.6主从参数详解
    京东MySQL监控之Zabbix优化、自动化
    CentOS 6.5 生产环境编译安装LNMP
  • 原文地址:https://www.cnblogs.com/huafan/p/9664211.html
Copyright © 2011-2022 走看看