<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何構建Cookie池-1

汽車電子技術 ? 來源:Python數據分析之旅 ? 作者: cauwfq ? 2023-02-24 14:52 ? 次閱讀

pYYBAGP4XeeAEXihAACf-mJuNDI078.png

一.項目背景

   由于http協議是無狀態的協議,簡單理解為如果客戶端向服務器發送兩次請求,這
   兩次請求是獨立的,,也就是說服務器根本不知道是同一個客戶端發送過來的請求。所
以為了維護客戶端的請求狀態,Cookie技術應用而生。
   Cookie是通過客戶端保持狀態的解決方案,它是由服務器發送給客戶端的特殊信息,
而這些特殊信息以文本形式存儲放在客戶端,然后客戶端每次向服務器發送請求時會攜
帶上大量這些特殊信息。
   Session是通過服務器來保持狀態的,客戶端第一次訪問時,服務器為這個客戶端
創建唯一特征碼,也就是SessionID,客戶端再次請求時,服務器根據SessionID在服
務器數據庫中查詢,若有這個SessionID,則會做相應響應。

pYYBAGP4Xf6ASv-UAABvDi2TSSs653.png
Cookie屬性
》》name=value,鍵和值,具體的Cookie名稱和內容
》》expires=xxxxx,過期時間,Cookie有效期
》》path=/,根路徑,Cookie作用的具體路徑位置
》》httpOnly,此Cookie只能服務器操作,JS無法操作

二.實現過程

   本次項目我們爬取的目標網址為閃職網,一個專門為爬蟲工程師進行練習的網址,也
   在此非常感謝網站后臺維護人員辛勤付出,網址為:http://shanzhi.spbeen.com/,從
中可以看出Cookies有csrftoken和shanzhi_kmer以及它們各自對應的值

poYBAGP4Xh6AKgHIAACeEj0S0n0378.png
from selenium import webdriver
import time
import json


#用戶名,此處我們注冊四個用戶,如果無效讀者后期可自行注冊
users=[
    {'username':'test123456','password':'test123456'},
    {'username':'wfq123','password':'123'},
    {'username':'cauwfq','password':'cauwfq'},
    {'username':'cauwfq1234','password':'cauwfq1234'}
]


#登錄網址
def login(username,password):
    #初始化url
    url='http://shanzhi.spbeen.com/login/'
    #初始化webdriver
    driver=webdriver.Chrome()
    #最大化窗口
    driver.maximize_window()
    #請求url
    driver.get(url)
    #用戶名輸入框
    username_input=driver.find_element_by_xpath('//*[@id="username"]')
    #發送用戶名
    username_input.send_keys(username)
    #休眠1s
    time.sleep(1)
    #密碼輸入框
    password_input=driver.find_element_by_xpath('//*[@id="MemberPassword"]')
    #發送密碼
    password_input.send_keys(password)
    #休眠1s
    time.sleep(1)
    #點擊登錄按鈕
    driver.find_element_by_xpath('/html/body/div/div/div[2]/button').click()
    #休眠3s
    time.sleep(3)
    #獲取cookies
    cookie_lists=driver.get_cookies()
    #獲取cookie值
    cookie_dict={cookie['name']:cookie['value'] for cookie in cookie_lists}

    #寫入文件
    with open('./cookies.txt','a+',encoding='utf8') as f:
        #寫入文件
        f.write(json.dumps(cookie_dict))
        #寫入換行
        f.write('n')
    
    #退出瀏覽器
    driver.quit()


if __name__ == '__main__':
    #遍歷每個用戶
    for user in users:
        #登錄網站
        login(user['username'],user['password'])

pYYBAGP4Xk-AHI2bAABsEelmJsU078.png

poYBAGP4XlyAcphiAADcL-UP6Kw742.png
#測試Cookie有效性

import requests
import json
import re


#讀取cookies數據
with open('cookies.txt','r',encoding='utf8') as f:
    #讀取存儲為列表
    cookies_list=f.readlines()


#存儲結果
result=''
#遍歷每個Cookie
for cookie_str in cookies_list:
    #加載Cookie
    cookie_dict=json.loads(cookie_str)
    #構建會話
    session=requests.session()
    #加入到會話中
    session.cookies=requests.utils.cookiejar_from_dict(cookie_dict)
    #請求網址
    response=session.get('http://shanzhi.spbeen.com/login/')
    #輸出響應內容
    #print(response,response.text)
    #存儲結果
    result+=response.text


#輸出登錄結果,發現歡迎結果為4個,四個用戶登錄成功
print(re.findall('歡迎',result))

poYBAGP4XnaAXeZlAABZQo1oAWI827.png
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    8271

    瀏覽量

    83060
  • HTTP
    +關注

    關注

    0

    文章

    467

    瀏覽量

    30405
  • Cookie
    +關注

    關注

    0

    文章

    29

    瀏覽量

    10372
收藏 人收藏

    評論

    相關推薦

    php中Cookie及其使用

    呢?還是讓我們看了下面的內容,再做回答吧。  ?。?b class='flag-5'>1)Cookie技術簡介    在WEB技術發展史上,Cookie技術的出現是一個重大的變革。最先是Netscape在它的Netscape
    發表于 01-11 09:25

    Cookie是怎樣工作的?

    上面的Cookie在瀏覽器上只保存到1999年3月11秒。當然,如果瀏覽器上Cookie 太多,超過了系統所允許的范圍,瀏覽器將自動對它進行刪除。至于屬性Path,用來指定
    發表于 01-11 09:32

    cookie是什么意思

    到1999年3月11秒。當然,如果瀏覽器上Cookie 太多,超過了系統所允許的范圍,瀏覽器將自動對它進行刪除。至于屬性Path,用來指定Cookie將被發送到服務器的哪一個目錄路徑
    發表于 01-11 21:26

    COOKIE和SESSION會話機制

    COOKIE機制1.什么是COOKIE?當我們在訪問一個網站的時候,網站會偷偷的往你身上做個記號,這個東西你可能并不知道,當你下一次,再次訪問該網站的時候,網站會先從你身上來找這個記號,判斷你是不是
    發表于 07-03 09:13

    cookie和session的不同作用

    ,Cookie和Session還有以下區別:1. 存取方式的不同Cookie中只能保管ASCII字符串,假如需求存取Unicode字符或者二進制數據,需求先進行編碼。Cookie中也不
    發表于 01-09 17:39

    Cookie和Session的區別總結

    ,Cookie和Session還有以下區別:1. 存取方式的不同Cookie中只能保管ASCII字符串,假如需求存取Unicode字符或者二進制數據,需求先進行編碼。Cookie中也不
    發表于 01-10 15:11

    構建一個Cookie JAR激情時鐘

    描述Cookie JAR激情時鐘我想重現幾年前我最古老的項目之一,當時我建造了一個類似的時鐘。只是這一次,我想應用不同的技術并提出更好的設計。這個時鐘將滾動瀏覽一系列浪漫消息,并且每小時顯示一條
    發表于 08-01 06:44

    什么是Cookie?

    什么是Cookie?   按照Netscape官方文檔中的定義,Cookie是在HTTP協議下,服務器或腳本可以維護客戶工作站上信息的一種方式。Cooki
    發表于 01-11 09:27 ?2151次閱讀

    網絡Cookie工作原理

    網絡Cookie工作原理 引言 雖然大多數網絡Cookie使用起來相當簡單,但是它們也有自己獨特的原理。
    發表于 08-04 08:32 ?4044次閱讀

    Cookie數據是如何移動的?

    Cookie數據是如何移動的? Cookie數據只是網站存儲在您的硬盤上的一個名稱/值對。所有Cookie數據都是這樣。網站存儲此數據,并在以后接收此數據。一個網站只能接收其
    發表于 08-04 08:33 ?850次閱讀

    網站是如何使用Cookie的?

    網站是如何使用Cookie的? Cookie由于為使用網站的人解決了一個大問題而逐漸發展起來。從廣義上說,Cookie允許網站在計算機上存儲狀態信息,這些信息可讓網站記住瀏
    發表于 08-04 08:33 ?1552次閱讀

    什么是Cookie

    什么是Cookie    英文縮寫: Cookie 中文譯名: 小甜餅 分  類: IP與多
    發表于 02-22 17:18 ?620次閱讀

    cookie的作用

    cookie也可以叫做瀏覽器緩存,主要就是為了辨別用戶的資料,有兩種類型分別是會話cookie和持久cookie。本文主要詳細闡述cookie的作用以及
    的頭像 發表于 12-10 16:12 ?1.5w次閱讀

    cookie和session區別

    本視頻主要詳細闡述了cookie和session區別,cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。cookie不是很安全,別人可以分析存放在本地的COOKIE
    的頭像 發表于 12-12 15:48 ?10.4w次閱讀

    如何構建Cookie池-2

    在之前文章構建Cookie池(一)我們介紹了如何全自動化利用Selenium構建Cookie池。但是在實際開發中,我們經常會遇到反爬措施,成功登錄網頁的情況也不常見,比如會遇到圖形驗證
    的頭像 發表于 02-24 14:54 ?411次閱讀
    如何<b class='flag-5'>構建</b><b class='flag-5'>Cookie</b>池-2
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>