Python爬蟲連載6-cookie深入使用實例化實現自動登錄

来源:https://www.cnblogs.com/ruigege0000/archive/2020/02/10/12289556.html
-Advertisement-
Play Games

一、使用cookie登錄 1.直接把cookie複製下去,然後手動放到請求頭 2.http模塊包含一些關於cookie的模塊,通過他們我們可以自動使用cookie (1)cookieJar 管理存儲cookie,向傳出的http請求添加cookie;cookie存儲在記憶體中,CookieJar實例回 ...


一、使用cookie登錄

1.直接把cookie複製下去,然後手動放到請求頭

2.http模塊包含一些關於cookie的模塊,通過他們我們可以自動使用cookie

(1)cookieJar

管理存儲cookie,向傳出的http請求添加cookie;cookie存儲在記憶體中,CookieJar實例回收後cookie​將消失;

(2)FileCookieJar(filename,delayload=None,policy=Nnone)

使用文件管理cookie​;filename是保存cookie的文件

filename是保存cookie的文件

(3)MozillaCookieJar(filename,delayload=None,policy=None)

創建於mocilla瀏覽器cookie,txt相容的FileCookieJar實例

(4)LwpCookieJar(filename,delayload-None,policy=None)

創建與libww-perl標準相容的FileCookieJar實例

(5)​他們的關係是:CookieJar-->FileCookirJar-->MozillaCookieJar & LwpCookieJa

3.利用cookiejar訪問人人網

自動使用cookie登錄,​大致流程為:(1)打開登陸頁面後自動通過用戶名密碼登錄​;(2)自動提取反饋回來的cookie​;(3)利用提取的cookie登錄隱私頁面​;

4.handler是Handler的實例,常用參看案例代碼

(1)用來處理複雜請求

 

#生成cookie的管理器

cookie_handler = request.HTTPCookieProcessor(cookie)

#創建http請求管理器

http_handler = request.HTTPHandler()

#生成https管理器

https_handler = request.HTTPHandler()

 

 

(2)創立handler後,使用opener打開,打開後相應的業務由相應的handler處理

(3)cookie作為一個變數,列印出來

cookie的屬性​:

name:名稱     value​:值    domain:可以訪問此cookie的功能變數名稱     expires:過期時間       size:大小    Http欄位

 

 

from urllib import request,parse

from http import cookiejar

#創建cookiejar實例

cookie = cookiejar.CookieJar()

#生成cookie的管理器

cookie_handler = request.HTTPCookieProcessor(cookie)

#創建http請求管理器

http_handler = request.HTTPHandler()

#生成https管理器

https_handler = request.HTTPHandler()

#創建請求管理器

opener = request.build_opener(http_handler,https_handler,cookie_handler)

​

def login():

    """

    負責初次登錄

    需要輸入用戶名密碼

    :return:

    """

    url = "http://www.renren.com/PLogin.do"

    data = {

        "email":"[email protected]",

        "password":"481648541615485"

    }

    #把數據進行編碼

    data = parse.urlencode(data)

    #創建一個請求對象

    req = request.Request(url,data=data.encode())

    #使用opener發起請求

    rep = opener.open(req)

​

def getHomePage():

    url = "http://www.renren.com/965187997/profile"

    #如果已經執行了login函數,則opener自動已經包含相應的cookie值

    rsp = opener.open(url)

​

    html = rsp.read().decode()

    with open("rsp.html","w") as f:

        f.write(html)

​

​

if __name__ == "__main__":

    """

    執行完login之後,會得到授權之後的cookie

    我們嘗試把cookie列印出來

    """

    login()

    print(cookie)

    for item in cookie:

        print(type(item))

        print(item)

        for i in dir(item):

            print(i)

    getHomePage()

 

二、源碼

Reptitle6_CookieJar.py

https://github.com/ruigege66/PythonReptile/blob/master/Reptitle6_CookieJar.py​

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • CSS Sprite CSS雪碧圖 為了減少http請求數量,加速網頁內容顯示,很多網站的導航欄圖標、登錄框圖片等,使用的並不是<image>標簽,而是CSS Sprite雪碧圖。 雪碧圖使用場景: 1、靜態圖片,不隨用戶信息的變化而變化 2、小圖片,圖片容量比較小 3、載入數量比較大 4、一些大圖 ...
  • 緩存設置: 編輯-首選項-暫存檔 改完除了C盤之外的其他盤 單位設置: 編輯-首選項-單位與標尺 將單位修改成像素 PS預設: 工具 (視窗-工具) 標尺 (視圖-標尺) 圖層 (視窗-圖層) 信息 (視窗-信息) 字元 (視窗-段落) 框選一塊區域後,可以在信息里查看尺寸相關 藉助輔助線切圖:拉好 ...
  • 在JS中,能用 . 的地方一般都可以用 [ ] 取代 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width ...
  • typora copy images to: media 第01階段.前端基礎.HTML常用標簽 學習目標 理解: 相對路徑三種形式 應用 排版標簽 文本格式化標簽 圖像標簽 鏈接 相對路徑,絕對路徑的使用 1. HTML常用標簽 首先 HTML和CSS是兩種完全不同的語言,我們學的是結構,就只寫H ...
  • typora copy images to: media 第01階段.前端基礎.認識HTML 學習目標 理解 HTML的概念 HTML標簽的分類 HTML標簽的關係 HTML標簽的語義化 應用 HTML骨架格式 sublime基本使用 1. HTML 初識 HTML 指的是超文本標記語言 ( H y ...
  • typora copy images to: media 第01階段.前端基礎.認識WEB 基礎班學習目標 目標: 能根據psd文件,用HTML+CSS 佈局出符合W3C規範的網頁。 網站首頁 列表頁、詳情頁、登錄頁、 註冊頁等等。。。。 課程安排 就業班詳情 參看: http://www.itca ...
  • 在《Umi 小白紀實(一)》中有提到過簡單的路由配置和使用,但這隻是冰山一角 借用一句廣告詞,Umi 路由的能量,超乎你的想象 一、基本用法 Umi 的路由根結點是全局 layout src/layouts/index.js 路由會將相應的頁面組件映射到上面的 props.children 中 之前 ...
  • 今日內容 帶參數的裝飾器: flask框架 + django緩存 + 寫裝飾器實現被裝飾的函數要執行N次 模塊 os sys time(三種類型) datetime 和 timezone【瞭解】 內容回顧 & 補充 1.函數 寫代碼的方式:面向過程 函數式編程(多) 面向對象編程。 1.1 函數基礎 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...