Python編程基礎訓練之網絡爬蟲利用Cookies信息登錄豆瓣網

在前一篇獲取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進行網頁登錄操作~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章