一.項(xiàng)目背景
在之前文章構(gòu)建Cookie池(一)我們介紹了如何全自動(dòng)化利用Selenium構(gòu)建Cookie池。但是在實(shí)際開發(fā)中,我們經(jīng)常會(huì)遇到反爬措施,成功登錄網(wǎng)頁的情況也不常見,比如會(huì)遇到圖形驗(yàn)證碼和滑塊等,破解時(shí)也比較麻煩,比較好的方法就是我們手動(dòng)協(xié)助登錄,也就是半自動(dòng)化式獲取Cookie,這也相對來說是一個(gè)比較萬能的方法。
本次項(xiàng)目我們爬取的目標(biāo)網(wǎng)址還是閃職網(wǎng),一個(gè)專門為爬蟲工程師進(jìn)行練習(xí)的網(wǎng)址,也
在此非常感謝網(wǎng)站后臺(tái)維護(hù)人員辛勤付出,網(wǎng)址為:http://shanzhi.spbeen.com/,從
中可以看出Cookies有csrftoken和shanzhi_kmer以及它們各自對應(yīng)的值

二.實(shí)現(xiàn)過程
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'}
]
#程序?qū)㈩A(yù)處理內(nèi)容全部處理好
#瀏覽器等著用戶來處理,比如登錄
#用戶處理的同時(shí),程序一直在監(jiān)聽
#直到用戶直接關(guān)閉瀏覽器,程序發(fā)生異常,繼續(xù)往下執(zhí)行
def wait_cookie(driver):
#循環(huán)監(jiān)聽
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)
#登錄網(wǎng)址
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"]')
#發(fā)送用戶名
username_input.send_keys(username)
#休眠1秒鐘
time.sleep(1)
#密碼輸入框
password_input=driver.find_element_by_xpath('//*[@id="MemberPassword"]')
#發(fā)送密碼
password_input.send_keys(password)
#獲取cookie
wait_cookie(driver)
if __name__ == '__main__':
#遍歷每個(gè)用戶
for user in users:
#登錄獲取cookie
login(user['username'],user['password'])

-
開發(fā)
+關(guān)注
關(guān)注
0文章
373瀏覽量
41426 -
Cookie
+關(guān)注
關(guān)注
0文章
30瀏覽量
10586 -
全自動(dòng)化
+關(guān)注
關(guān)注
0文章
9瀏覽量
1747
發(fā)布評論請先 登錄
php中Cookie及其使用
Cookie是怎樣工作的?
cookie是什么意思
COOKIE和SESSION會(huì)話機(jī)制
Cookie和Session的區(qū)別總結(jié)
構(gòu)建一個(gè)Cookie JAR激情時(shí)鐘
什么是Cookie?
網(wǎng)絡(luò)Cookie工作原理
Cookie數(shù)據(jù)是如何移動(dòng)的?
網(wǎng)站是如何使用Cookie的?
cookie的作用
cookie和session區(qū)別
如何構(gòu)建Cookie池-1

評論