詳解cookie反反爬策略

2021-10-05 16:21:47 字數 2333 閱讀 3824

首先先大概了解一下cookie的作用:cookie一般是登入後產生(post),用來保持登入狀態的,一般登入一次,下一次訪問該**下的其他**時就不需要登入了,這就是由於cookie的作用,cookie就是給無狀態的http/https協議新增了一種保持之前狀態的功能,這樣下次處理資訊的時候就不用重新獲取資訊了

cookie還可以來判斷是否是爬蟲程式,因為一般的爬蟲程式中並不會攜帶cookie,有些比較嚴格的**,不登入也需要攜帶cookie訪問,也就是說cookie的應用場景並不僅僅只有登入後才需要

手動獲取

自動獲取

方式一:基於session物件實現自動處理(捕獲登入前的cookie)

如何獲取乙個session物件?:

requests.session()

session物件的作用:該物件可以向requests一樣呼叫get和post發起指定請求,只不過如果在使用session發起請求的過程中如果產生了cookie,則cookie會被自動儲存到該session物件中,那麼就意味著下次再使用session物件發起請求,則該次請求就是攜帶了cookie進行的請求傳送

第一次使用sessino是為了將cookie捕獲且儲存到session物件中,第二次使用session就是傳送攜帶了cookie的請求

import requests

from lxml import etree

headers =

# 用了自動獲取的cookie每次請求都是新的cookie就非常靈活了

session = requests.session() # 建立好了seion物件

# 第一次使用session捕獲且儲存cookie,猜測對雪球網首頁發起的請求可能會產生cookie

main_url = ''

session.get(main_url,headers=headers) # 捕獲且儲存cookie

# 含有ajax資料報的url

url = ''

page_text = session.get(url=url,headers=headers).json() # 攜帶捕獲的cookie傳送請求

print(page_text)

cookie並不一定都是主頁會產生,應該多次使用session在不同的位址下捕獲cookie

方式二:基於selenium去實現獲取登入後產生的cookie

這裡以免密登入qq空間為例

from time import sleep

from selenium import webdriver

# 自動登入

driver = webdriver.chrome(executable_path='chromedriver.exe')

driver.get('')

# driver.set_window_position(20, 40)

# driver.set_window_size(1100,700)

# 表單在該框架下

driver.switch_to_frame('login_frame')

sleep(0.5)

driver.find_element_by_xpath('//*[@id="bottom_qlogin"]/a[1]').click()

driver.find_element_by_xpath('//*[@id="u"]').send_keys('***x') # 你的qq號

driver.find_element_by_xpath('//*[@id="p"]').send_keys('***xx')# 你的qq密碼

driver.find_element_by_xpath('//*[@id="login_button"]').click()

'''!!!!如果輸入賬號密碼後 彈出滑動驗證碼則可以這樣執行

方式一:input('手動驗證後輸入空格繼續:)

關於驗證碼識別,下一期在詳解

!!!'''

# 獲取cookie

cookies = driver.get_cookies()

cookies_list =

for i in cookies:

cookiestr = ';'.join(cookies_list)

headers =

url = '' # 你的qq號

response = requests.get(url,headers=headers).content.decode('utf-8')

# 成功輸出登入後頁面

print(response)

一定要注意cookie字串的格式,第乙個鍵值對前面沒有空格,後面的每乙個都有空格,要不cookie是無效的

反反爬蟲策略

點選我前往github檢視源 別忘記star 自建 池 一.對請求ip等進行限制的。以知乎為例,當我們的請求速度到達一定的閾值,會觸發反爬蟲機制!在我爬取知乎百萬使用者資訊中,出現了429錯誤 too many requests 詳情請見我的部落格 應對策略.1.降低爬蟲採集速率,使速率略低於閾值 ...

爬蟲 反反爬 IP

ip反爬不用說了,入門級的 git上開源的proxy pool很多,找那個most star的,缺點用的人多,響應速度慢,可用率低。公司有預算的話,購買付費 常用的幾家 芝麻 阿布雲,多貝雲,大象,曾打 給 公司,貌似都是在全國各地拉網線,建機房,adsl撥號,質量差不太多,詳細參考崔慶才部落格,有...

反爬與反反爬(一)

1.伺服器反爬原因 2.伺服器常反什麼樣的爬蟲 3.反爬蟲領域常見的一些概念 誤傷 在反爬蟲的過程中,錯誤的將普通使用者識別為爬蟲。誤傷率高的反爬蟲策略,效果再好也不能用。攔截 成功的阻止爬蟲訪問。這裡會有攔截率的概念。通常來說,攔截率越高的反爬蟲策略,誤傷的可能性就越高。因為需要做個權衡。資源 機...