在前一篇獲取Cookies信息的基礎之上:https://blog.csdn.net/lfy905805357/article/details/93520231
進一步可以利用Cookies登錄豆瓣網頁~
測試訪問頁面時是否處於登錄狀態,可以通過訪問一個登錄後才能訪問的頁面,例如涉及用戶信息的頁面,比如下圖中登錄
豆瓣之後才能訪問的”我的豆瓣”
個人主頁訪問鏈接如下:https://www.douban.com/people/198456540/
不同用戶此鏈接會有差異
一、源碼
# -*- coding: utf-8 -*-
"""
Created on Mon Jun 24 20:32:31 2019
@author: UnderMask
"""
#利用Cookies信息登錄豆瓣網
import requests
import http.cookiejar as cookielib
import random#隨機添加/修改User-Agent
ualist = [#一些可用的瀏覽器名稱
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24" ]
session = requests.session()
session.cookies = cookielib.LWPCookieJar(filename='doubanCookies.txt')
url = 'https://www.douban.com/people/198456540/'#自己的個人主頁
headers = {"Connection":"Keep-alive", "User-Agent":random.choice(ualist)}#隨機添加/修改User-Agent
#從doubanCookies.txt文件中加載cookie信息
session.cookies.load()
#allow_redirects如果不設置,session訪問時,服務器返回302,然後session會自動重定向到登錄頁面,獲取到登錄頁面之後,變成200的狀態碼,設置爲False就是不允許重定向
res = session.get(url, headers = headers, allow_redirects = False)
#判斷status_code返回值是否爲200,如果是則代表當前的cookie信息有效
if res.status_code == 200:
print('Cookies is login')
else:
print('Cookies is not login')#可能Cookies超過時間失效,換賬號密碼繼續登錄
data = {'name':'xxxxxxxxxxx', 'password':'xxxxxx'}#自己的賬號密碼
r = session.post(url, data = data, headers = headers)
print(r.status_code)
print('Account password is login')
二、運行效果
這樣就可以通過Cookies進行網頁登錄操作~