反爬蟲機制主要有:
(1)分析使用者請求的headers資訊進行反爬蟲------反爬蟲會對使用者請求的headers資訊的「user-agent」進行檢測;反爬蟲**還會對「referer」字段進行檢測
(2)檢測使用者行為,ip在短時間內是否頻繁訪問------使用**伺服器,經常切換
(3)動態頁面增加爬蟲難度-------利用工具軟體(selenium+phantomjs)
常見頭資訊中欄位含義
~accept:瀏覽器能夠支援的內容型別
~text/html:html文件
~q:權重係數(介於0-1)
2.accept-encoding:gzip,deflate
~accept-encoding:壓縮編碼有哪些
~gzip:壓縮編碼的一種
~deflate:無損資料壓縮演算法
3.accept-language:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
~accept-language:瀏覽器支援的語言
~zh-cn:簡體中文,zh中文,cn簡體
~en-us:英語(美國)語言
~en:英語語言
4.user-agent:mozilla/5.0(windowsnt6.1;wow64;rv:47.0)gecko/20100101firefox/47.0
~user-agent:使用者**
~mozilla/5.0:瀏覽器名及其版本
~windowsnt6.1;wow64;rv:47.0:客戶端作業系統對應資訊
~gecko:網頁排版引擎對應資訊
~firefox:火狐瀏覽器
5.connection:keep-alive
~connection:客戶端與伺服器鏈結型別
~~keep-alive:永續性鏈結
~~close:單方面關閉鏈結,讓鏈結斷開
~host:請求的伺服器**是什麼
6.referer:**
~referer****位址
偽裝成瀏覽器:
1.通過opener.addheaders為爬蟲新增headers資訊
#以字典的形式設定headers
#設定cookie
#建立空列表,為了以指定格式儲存頭資訊
headall =
#通過for迴圈遍歷字典,構造出指定格式的headers資訊
for key,value in headers.items():
item = (key,value)
#將指定格式的headers資訊新增好
opener.addheaders = headall
#將opener安裝為全域性
urllib.request.install_opener(opener)
data =urllib.request.urlopen(url).read()
fhandle =open("c:/users/alibaba/desktop/jupyter/8.html","wb")
fhandle.write(data)
fhandle.close()
注意:1)如果accept-encoding設定gzip,deflate會有亂碼,解決方案,省略不寫或者設定為utf-8或gb2312
2)使用fiddler作為**伺服器,爬去**用具體檔案或者/結尾
3)referer值設定為網頁網域名稱位址或者**主頁**
爬蟲筆記(十二) 瀏覽器偽裝技術
1.通過分析使用者請求的headers資訊進行反爬蟲 2.通過檢測使用者行為進行反爬蟲,比如通過判斷同乙個ip在短時間內是否頻繁訪問對應 等進行分析 3.通過動態頁面增加爬蟲的爬取難度,達到反爬蟲的目的 第一種反爬蟲機制在目前 中應用的最多,大部分反爬蟲 會對使用者請求的headers資訊的 use...
Scrapy 爬蟲偽裝
scrapy 設定 ip 設定隨機user agent 防止對方發現我們 設定 ip middleware.py class my proxy object def process request self,request,spider 伺服器的ip 與埠號 註冊乙個 阿布雲 設定通行使用者的使用者...
爬蟲偽裝頭部
偽裝頭部是最基本的反反爬蟲方法,下面假設我們有乙個 from flask import flask getinfo defhello world return 這裡假裝有很多資料 def index return 個人主頁 if name main 現在就可以通過 訪問了。我們想看看請求的 head...