PythonScript_003_通過Cookie模擬登陸人人網
阿新 • • 發佈:2018-12-04
#!/usr/bin/env python # -*- coding:utf-8 -*- import urllib.request import http.cookiejar # 相當於Python2的cookielib ''' 通過Cookie模擬登陸人人網,獲取請求 總結:1、POST請求需要登入的賬號密碼,cookie就儲存在opener物件當中 2、訪問許可權介面 Python 3.7.0 ''' # 通過CookieJar()類構建一個cookieJar()物件,用來儲存cookie的值 cookie = http.cookiejar.CookieJar() # 通過HTTPCookieProcessor()處理器類構建一個處理器物件,用來處理cookie # 引數:構建CookieJar()物件 cookie_handler = urllib.request.HTTPCookieProcessor(cookie) # 構建一個自定義的opener opener = urllib.request.build_opener(cookie_handler) # 通過自定義opener的addheaders的引數,可以賦值HTTP報頭引數 opener.addheaders = [("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36")] # 人人網的登入介面 http://www.renren.com/PLogin.do 沒有動態生成Token url = "http://www.renren.com/PLogin.do" # 這是需要登入的賬號密碼 data = {"email":"YourName","password":"YourPassword"} # 轉成url編碼 data = urllib.parse.urlencode(data).encode("utf-8") # 第一次是post請求,傳送登入需要的引數,獲取cookie request = urllib.request.Request(url, data) # 傳送第一次請求的post請求,請求之後cookie的值就存在於opener物件當中了 response = opener.open(request) # print(response.read().decode("utf-8")) # 第二次請求,該請求中就有cookie 請求其它許可權頁面 response_homepage = opener.open("http://www.renren.com/969005442/profile") # 登陸後訪問的頁面 print(response_homepage.read().decode("utf-8"))