首先先大概了解一下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.反爬蟲領域常見的一些概念 誤傷 在反爬蟲的過程中,錯誤的將普通使用者識別為爬蟲。誤傷率高的反爬蟲策略,效果再好也不能用。攔截 成功的阻止爬蟲訪問。這裡會有攔截率的概念。通常來說,攔截率越高的反爬蟲策略,誤傷的可能性就越高。因為需要做個權衡。資源 機...