爬蟲筆記(十二) 瀏覽器偽裝技術

2021-08-21 15:31:06 字數 2113 閱讀 7592

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 ...