一.項目背景
在之前文章構建Cookie池(一)我們介紹了如何全自動化利用Selenium構建Cookie池。但是在實際開發中,我們經常會遇到反爬措施,成功登錄網頁的情況也不常見,比如會遇到圖形驗證碼和滑塊等,破解時也比較麻煩,比較好的方法就是我們手動協助登錄,也就是半自動化式獲取Cookie,這也相對來說是一個比較萬能的方法。
本次項目我們爬取的目標網址還是閃職網,一個專門為爬蟲工程師進行練習的網址,也
在此非常感謝網站后臺維護人員辛勤付出,網址為:http://shanzhi.spbeen.com/,從
中可以看出Cookies有csrftoken和shanzhi_kmer以及它們各自對應的值
二.實現過程
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 wait_cookie(driver):
#循環監聽
while True:
try:
#獲取cookies
cookie_list=driver.get_cookies()
#獲取cookie值
cookie_dict={ck['name']:ck['value'] for ck in cookie_list}
#輸出cookie值
print(cookie_dict)
except:
#寫入文件
with open('./cookies_1.txt', 'a+', encoding='utf8') as f:
#寫入字典
f.write(json.dumps(cookie_dict))
#寫入換行符
f.write('n')
break
#睡眠3s
time.sleep(3)
#登錄網址
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)
#休眠1秒鐘
time.sleep(1)
#密碼輸入框
password_input=driver.find_element_by_xpath('//*[@id="MemberPassword"]')
#發送密碼
password_input.send_keys(password)
#獲取cookie
wait_cookie(driver)
if __name__ == '__main__':
#遍歷每個用戶
for user in users:
#登錄獲取cookie
login(user['username'],user['password'])
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
開發
+關注
關注
0文章
370瀏覽量
40888 -
Cookie
+關注
關注
0文章
30瀏覽量
10419 -
全自動化
+關注
關注
0文章
8瀏覽量
1666
發布評論請先 登錄
相關推薦
php中Cookie及其使用
,但是對于絕大多數的網絡用戶來說還是傾向于接受Cookie的。因此,我們盡可以放心地使用Cookie技術來開發我們的WEB頁面。 2)Cookie是怎樣工作的? 要了解
發表于 01-11 09:25
Cookie是怎樣工作的?
2"); 接收和處理Cookie PHP對Cookie的接收和處理的支持非常好,是完全自動的,跟FORM變量的原則一樣,特別簡單。比如設置一個名為MyCookier的Cookie
發表于 01-11 09:32
cookie是什么意思
cookie是什么意思什么是Cookie? 按照Netscape官方文檔中的定義,Cookie是在HTTP協議下,服務器或腳本可以維護客戶工作站上信息的一種方式。Cookie 是由
發表于 01-11 21:26
COOKIE和SESSION會話機制
網站的老客戶,如果是,它就會自動推送一些你喜歡的內容。COOKIE信息,是靠瀏覽器來進行存儲、記錄的,所以,有的時候,我們清除COOKIE信息之后,這些內容就不再存在了!2.為什么要使用COO
發表于 07-03 09:13
Cookie和Session的區別總結
Bean乃至任何Java類,對象等,運用起來十分便當。能夠把Session看做是一個Java容器類。2. 隱私策略的不同Cookie存儲在客戶端閱讀器中,對客戶端是可見的,客戶端的一些程序可能會窺探
發表于 01-10 15:11
構建一個Cookie JAR激情時鐘
描述Cookie JAR激情時鐘我想重現幾年前我最古老的項目之一,當時我建造了一個類似的時鐘。只是這一次,我想應用不同的技術并提出更好的設計。這個時鐘將滾動瀏覽一系列浪漫消息,并且每小時顯示一條
發表于 08-01 06:44
什么是Cookie?
什么是Cookie?
按照Netscape官方文檔中的定義,Cookie是在HTTP協議下,服務器或腳本可以維護客戶工作站上信息的一種方式。Cooki
發表于 01-11 09:27
?2301次閱讀
Cookie數據是如何移動的?
Cookie數據是如何移動的?
Cookie數據只是網站存儲在您的硬盤上的一個名稱/值對。所有Cookie數據都是這樣。網站存儲此數據,并在以后接收此數據。一個網站只能接收其
發表于 08-04 08:33
?921次閱讀
網站是如何使用Cookie的?
網站是如何使用Cookie的?
Cookie由于為使用網站的人解決了一個大問題而逐漸發展起來。從廣義上說,Cookie允許網站在計算機上存儲狀態信息,這些信息可讓網站記住瀏
發表于 08-04 08:33
?1672次閱讀
cookie的作用
cookie也可以叫做瀏覽器緩存,主要就是為了辨別用戶的資料,有兩種類型分別是會話cookie和持久cookie。本文主要詳細闡述cookie的作用以及
cookie和session區別
本視頻主要詳細闡述了cookie和session區別,cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。cookie不是很安全,別人可以分析存放在本地的COOKIE
如何構建Cookie池-1
由于http協議是無狀態的協議,簡單理解為如果客戶端向服務器發送兩次請求,這
兩次請求是獨立的,,也就是說服務器根本不知道是同一個客戶端發送過來的請求。所
以為了維護客戶端的請求狀態,Cookie技術應用而生。
評論