1. 通過分析使用者請求的headers資訊進行反爬蟲
2. 通過檢測使用者行為進行反爬蟲,比如通過判斷同乙個ip在短時間內是否頻繁訪問對應**等進行分析
3. 通過動態頁面增加爬蟲的爬取難度,達到反爬蟲的目的
第一種反爬蟲機制在目前**中應用的最多,大部分反爬蟲**會對使用者請求的headers資訊的「user-agent」字段進行檢測來判斷身份,有時,這類反爬蟲的**還會對「referer」字段進行檢測。我們可以在爬蟲中構造這些使用者請求的headers資訊,以此將爬蟲偽裝成瀏覽器,簡單的偽裝只需設定好「user-agent」欄位的資訊即可,如果要進行高相似度的路藍旗偽裝,則需要將使用者請求的headers資訊中常見的字段都在爬蟲中設定好
第二種反爬蟲機制的**,可以通過之前學習的使用**伺服器並經常切換**伺服器的方式,一般就能夠攻克限制
第三種反爬蟲機制的**,可以利用一些工具軟體,比如selenium+phantomjs,就可以攻克限制
在學習高相似度的瀏覽器偽裝技術之前,我們首先要對headers資訊要有一定的了解。我們先打**狐瀏覽器,開啟**的**www.taobao.com,利用fiddler獲取頭部資訊。
欄位的格式,基本格式為:「欄位名」:」字段值」,欄位名和對應的值之間通過」:」隔開。
欄位2: accept-encoding:gzip, deflate
這一行字段資訊表示瀏覽器可以支援gzp、 deflate等壓縮編碼。
欄位3: accept- language:en-us,en;q=0.5
所以之一行欄位表示瀏覽器可以支援en-us、cn等語言。除此之外,有些還支援zh-cn(表示簡體中文語言。zh表示中文,cn表示簡體)。
欄位4:user- agent: mozilla/5.0( x11;ubuntu;linux x86_64 ;rv:61.0) gecko20100101firefox/61.0
所以這一行字段表示資訊為對應的使用者**資訊。
欄位5: connection:keep-alve
所以此時,這一行字段表示客戶端與伺服器的連線是永續性連線。
欄位6:host: ocsp2.globalsign.com
欄位7: referer:**
使用**伺服器
# 使用http.cookiejar.cookiejar()建立cookiejar物件
# 使用httpcookieprocessor建立cookie處理器,並以其引數構建opener物件
# 將opener安裝為全域性
urllib.request.install_opener(opener)
file = opener.open(req)
data = file.read()
file = open('/home/wk/csdn.html','wb')
file.write(data)
file.close()
data2 = urllib.request.urlopen(url2).read()
fhandle = open('/home/wk/csdn1.html','wb')
fhandle.write(data2)
fhandle.close()
爬蟲瀏覽器的偽裝技術
1 大部分反爬蟲 會檢查使用者的 user agent 字段。簡單的偽裝只需要設定好 user agent 字段。高相似度的偽裝瀏覽器設定headers常見字段。2 通過獲取伺服器資訊進行反爬。通過使用 伺服器的方式解決。3 對於更加複雜的反爬機制的 可以運用selenium phantomjs聯合...
Python 爬蟲瀏覽器偽裝技術
瀏覽器偽裝技術實戰 1 常見的反爬蟲和應對方法 前兩種比較容易遇到,大多數 都從這些角度來反爬蟲。第三種一些應用ajax的 會採用,這樣增大了爬取的難度。通過headers反爬蟲 基於使用者行為反爬蟲 動態頁面的反爬蟲 2 請求頭headers介紹 1 請求 客戶端 服務端 request get ...
爬蟲瀏覽器偽裝
先引入模組 urllib.request和re import requests import re定義乙個url鏈結 url 瀏覽器偽裝,定義乙個headers頭 headers user agent 將headers新增到真實的報頭中去,首先建立乙個opener物件,再將其新增進去 opener ...