欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python爬蟲實現Cookie模擬登錄

 更新時間:2024年04月10日 16:16:40   作者:萬里顧—程  
這篇文章主要介紹了Python爬蟲實現Cookie模擬登錄,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

0.模擬登錄原理

模擬登錄,一般是網站在瀏覽器中使用POST請求向后端發(fā)送數據請求的過程,響應后的數據一般會設置相關的Session與Cookie標識用戶的登錄標識。對于前后端分離的項目中,也有可能是加密密鑰的token,例如 ,jwt 登錄的方式的 token 一般包含時效性,當然cookie 也具備時效性。但是在登錄請求的請求頭并不用包含,因為這些都是登錄后的返回結果的信息,務必注意區(qū)分。

1、Cookie模擬登錄

現在很多網站需要用戶成功登錄后才可以查看相關內容。使用Cookie 模擬登錄可以很好地解決這種問題。

Cookie 是指某些網站服務器為了辨別用戶身份和進行Session跟蹤,而儲存在用戶瀏覽器上的文本文件,Cookie是一個記錄了用戶登錄狀態(tài)以及用戶屬性的加密字符串,Cookie可以保持登錄信息到用戶下次與服務器的會話。Cookie 以鍵 / 值對形式存儲。

Cookie 驗證流程:當用戶第一次登陸網站時,服務端會在返回的響應頭 Response Headers 中添加 Cookie數據, 瀏覽器接收到響應頭的信息后,會將 Cookie 保存至瀏覽器本地存儲中,當用戶再次向該網站發(fā)送請求時,請求頭中就會攜帶 Cookie,這樣服務器通過讀取 Cookie 就能識別登陸用戶了。

Cookie在爬蟲方面最典型的應用是判定注冊用戶是否已經登錄網站,用戶在請求參數中傳入Cookie,在發(fā)送請求訪問url時,會跳過登錄界面,跳過登錄驗證流程,從而直接訪問到想要的網站數據。

Cookie 模擬登錄使用實例:

注冊一個微博賬號,登錄微博并進入個人主頁,使用F12打開瀏覽器的調試工具,在 Headers 選項中找到請求頭Request Headers 中的 Cookie 信息,復制保存。

import urllib.request
import urllib.parse

url = 'https://weibo.com/u/6768120693/home'

#請求頭參數
headers = {
    'cookie': 'UPSTREAM-V-WEIBO-COM=35846f552801987f8c1e8f7cec0e2230; _s_tentry=passport.weibo.com; Apache=3550042880907.0825.1657677410065; SINAGLOBAL=3550042880907.0825.1657677410065; ULV=1657677410241:1:1:1:3550042880907.0825.1657677410065:; XSRF-TOKEN=wpUjXoB3U_T8KzDcYBGeQmeg; WBPSESS=dg5zs_KFY81p0FnDKmb34Ti2iJGu9QxJdhMzG8ikVBN-CyoFvr-FTOapET7oPxP0FTRcDR-4ospowpRpkqiE8Gga-FNf9Bekers3TFYG5vxMEBfXahOBmCiJK7XwTPB_GaeInt3uz0W9CfgA545n9SWoyDpY910MV0NogSygO48=; PC_TOKEN=fd99713024; login_sid_t=6d987092eac2182f810741424691738b; cross_origin_proto=SSL; WBStorage=4d96c54e|undefined; wb_view_log=1920*10801; SUB=_2A25Py7HwDeRhGeBJ7VoQ8i7Kwj-IHXVsoKQ4rDV8PUNbmtAKLVPNkW9NRi9nZzdxPj2ym6xf8i-dSCWgSnyp4GVC; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9W5e8Y.xknmxKI8AQq4L07-c5JpX5KzhUgL.FoqNSonpeo5c1Ke2dJLoI0.LxKqL1h5L1KzLxKqL1KqLBK-LxKqL1hnL1K2LxKML1-2L1hBLxK-L1K5L12BLxK-LB-BL1KUT-27t; ALF=1689318688; SSOLoginState=1657782688; wvr=6; wb_view_log_6768120693=1920*10801; webim_unReadCount=%7B%22time%22%3A1657782816028%2C%22dm_pub_total%22%3A0%2C%22chat_group_client%22%3A0%2C%22chat_group_notice%22%3A0%2C%22allcountNum%22%3A40%2C%22msgbox%22%3A0%7D',
    'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.5261 SLBChan/10'
}

request = urllib.request.Request(url=url,headers=headers)
response = urllib.request.urlopen(request)
content = response.read().decode('utf-8')

with open('weibo.html','w',encoding='utf-8') as file:
    file.write(content)

2、Handler處理器

Handler處理器可以定制更高級的請求頭,基本的urlopen()方法不支持代理、動態(tài)cookie等其他的HTTP/HTTPS高級功能。

Handler處理器使用步驟:

  • 使用Handler處理器(如HTTPHandler或HTTPSHandler)來創(chuàng)建特定功能的處理器對象;
  • 然后通過urllib.request.build_opener()方法使用處理器,構建opener對象;
  • 使用構建的opener對象,調用open()方法發(fā)送請求。

使用實例:

import urllib.request

url = 'http://www.baidu.com'

headers = {
    'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.5261 SLBChan/10'
}
#1、獲取HTTPHandler處理器對象
http_handler = urllib.request.HTTPHandler()
#獲取HTTPSHandler處理器對象
https_handler = urllib.request.HTTPSHandler()

#2、構建opener對象
http_opener = urllib.request.build_opener(http_handler)
https_opener = urllib.request.build_opener(https_handler)

#定制請求
request = urllib.request.Request(url=url,headers=headers)

#3、調用open方法發(fā)送請求
http_response = http_opener.open(request)
https_response = https_opener.open(request)

print(http_response)
print(https_response)

執(zhí)行結果:

<http.client.HTTPResponse object at 0x000002220510A470>
<http.client.HTTPResponse object at 0x0000022205116CC0>

到此這篇關于Python爬蟲實現Cookie模擬登錄的文章就介紹到這了,更多相關Python爬蟲模擬登錄內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python遍歷文件夾的各種方法大全

    python遍歷文件夾的各種方法大全

    在Python中,可以使用多種方法來多次遍歷文件,下面這篇文章主要給大家介紹了關于python遍歷文件夾的各種方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-03-03
  • Python?statistics模塊示例詳解

    Python?statistics模塊示例詳解

    這篇文章主要介紹了Python?statistics模塊示例詳解,本文總結了 statistics 模塊的常規(guī)操作,對于數據分析還是非常有益處的,需要的朋友可以參考下
    2023-05-05
  • python線程定時器Timer實現原理解析

    python線程定時器Timer實現原理解析

    這篇文章主要介紹了python線程定時器Timer實現原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Python創(chuàng)建xml的方法

    Python創(chuàng)建xml的方法

    這篇文章主要介紹了Python創(chuàng)建xml的方法,實例分析了Python操作XML文件的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • Python實現捕獲異常發(fā)生的文件和具體行數

    Python實現捕獲異常發(fā)生的文件和具體行數

    這篇文章主要介紹了Python實現捕獲異常發(fā)生的文件和具體行數。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python3連接kafka模塊pykafka生產者簡單封裝代碼

    python3連接kafka模塊pykafka生產者簡單封裝代碼

    今天小編就為大家分享一篇python3連接kafka模塊pykafka生產者簡單封裝代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python對輸出的奇數偶數排序實例代碼

    python對輸出的奇數偶數排序實例代碼

    在本篇內容里小編給大家整理的是一篇關于python對輸出的奇數偶數排序實例代碼內容,有興趣的朋友們可以參考下。
    2020-12-12
  • Jupyter Notebook輸出矢量圖實例

    Jupyter Notebook輸出矢量圖實例

    這篇文章主要介紹了Jupyter Notebook輸出矢量圖實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python dataframe astype 字段類型轉換方法

    python dataframe astype 字段類型轉換方法

    下面小編就為大家分享一篇python dataframe astype 字段類型轉換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • django將圖片保存到mysql數據庫并展示在前端頁面的實現

    django將圖片保存到mysql數據庫并展示在前端頁面的實現

    這篇文章主要介紹了django將圖片保存到mysql數據庫并展示在前端頁面的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05

最新評論