Python 3におけるクッキーの作成と保存について


1.co.okieの役割
cookieとは、あるウェブサイトがユーザーのアイデンティティを識別し、session追跡を行うためにユーザーのローカル端末に格納されているデータのことで、いくつかのウェブサイト上のデータが登録されてからしか見えないように、あるページの内容をつかむには、cookieを使って登録をシミュレーションする必要があります。
cookieシミュレーションでログインするときは、pythonのCookieJarを使用する必要があります。CookieJarにはいくつかのサブクラスがあります。例えば、
  • FileCookieJar、LWPCookieJar、Mozia Cookie Jar
  • Cookie Jarはhttp生成のcookieを管理し、cookieの記憶作業を担当し、httpに指定のクッキーを追加する。
  • MozillaCookieJarLWPCookieJarは全部FileCookieJarのサブクラスです。クッキーの内容を具体的にファイルに保存する方法を実現しました。この二つの種類の対応の基準が違うだけです。
    2クッキーを取得する
    
    from http.cookiejar import CookieJar,LWPCookieJar
    from urllib.request import Request,urlopen,HTTPCookieProcessor,build_opener
    from urllib.parse import urlencode
    import ssl
    # ----------------------------------------  cookie---------------------------
    #       cookie   
    cookie_obj = CookieJar()
    #       cookie   ,    HTTPCookieProcessor
    cookie_handler = HTTPCookieProcessor(cookie_obj)  
    #    opener
    opener = build_opener(cookie_handler)  
    response = opener.open('http://www.baidu.com')
    print(response)
    #  cookie
    for cookie in cookie_obj:
      print('key:',cookie.name)
      print('value:',cookie.value)
    
    
    3クッキーのファイルを保存します。
    
    from http.cookiejar import CookieJar,LWPCookieJar
    from urllib.request import Request,urlopen,HTTPCookieProcessor,build_opener
    filename = 'neihan.txt'
    #   cookie     
    cookie_obj = LWPCookieJar(filename=filename)
    #       cookie   ,    HTTPCookieProcessor
    cookie_handler = HTTPCookieProcessor(cookie_obj)
    #    opener
    opener = build_opener(cookie_handler)
    #    
    response = opener.open('http://www.neihanshequ.com')
    #   cookie         
    # ignore_expires=True     cookie        ,      
    # ignore_discard=True    cookie  /    ,    
    cookie_obj.save(ignore_expires=True,ignore_discard=True)
    
    
    4ローカルのクッキーを使って要求する
    
    from http.cookiejar import CookieJar,LWPCookieJar
    from urllib.request import Request,urlopen,HTTPCookieProcessor,build_opener
    cookie = LWPCookieJar()
    #      cookie   
    cookie.load('neihan.txt')
    request = Request('http://www.neihanshequ.com')
    #       cookie   ,    HTTPCookieProcessor
    cookie_handler = HTTPCookieProcessor(cookie)
    #    opener
    opener = build_opener(cookie_handler)
    #    
    response = opener.open(request)
    # print(response.read().decode())
    
    
    5クッキーを使ったアナログログイン
    
    from http.cookiejar import CookieJar,LWPCookieJar
    from urllib.request import Request,urlopen,HTTPCookieProcessor,build_opener
    from urllib.parse import urlencode
    import ssl
    cookie = LWPCookieJar(filename='meishi.txt')
    cookie_handler = HTTPCookieProcessor(cookie)
    opener = build_opener(cookie_handler)
    headers={
      'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0'
    }
    post_url = 'https://i.meishi.cc/login.php?redirect=https%3A%2F%2Fi.meishi.cc%2Flogin.php%3Fac%3Dzhuce'
    # urlencode url         
    # urlencode()          
    post_data = urlencode({
      'username':'***********',  #       
      'password':'************'  #       
    })
    #   url    ,      
    request = Request(post_url,bytes(post_data,encoding='utf-8'))
    #       
    ssl._create_default_https_context = ssl._create_unverified_context
    response = opener.open(request)
    print(response.read().decode())
    cookie.save(ignore_discard=True,ignore_expires=True)
    
    
    ここのpost_urlはカバンを取って取りに来たのです。
    締め括りをつける
    以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考学習価値を持ってほしいです。ありがとうございます。もっと知りたいなら、下のリンクを見てください。