瀏覽器偽裝技術實戰
1 **常見的反爬蟲和應對方法
前兩種比較容易遇到,大多數**都從這些角度來反爬蟲。第三種一些應用ajax的**會採用,這樣增大了爬取的難度。
① 通過headers反爬蟲
② 基於使用者行為反爬蟲
③ 動態頁面的反爬蟲
2 請求頭headers介紹
1)請求(客戶端->服務端[request])
get(請求的方式)
/newcoder/hello.html(請求的目標資源) http/
1.1(請求採用的協議和版本號)
accept:*/
*(客戶端能接收的資源型別)
accept-language: en-us(客戶端接收的語言型別)
connection: keep-alive(維護客戶端和服務端的連線關係)
host: localhost:
8080
(連線的目標主機和埠號)
//localhost/links.asp(告訴伺服器我來自於**)
user-agent: mozilla/
4.0(客戶端版本號的名字)
accept-encoding: gzip, deflate(客戶端能接收的壓縮資料的型別)
if-modified-since: tue,
11 jul 200018:
23:51 gmt(快取時間)
cookie(客戶端暫存服務端的資訊)
date: tue,
11 jul 200018:
23:51 gmt(客戶端請求服務端的時間)
2)響應(服務端->客戶端[response])
1.1(響應採用的協議和版本號)
200(狀態碼) ok(描述資訊)
服務端需要客戶端訪問的頁面路徑)
server:apache tomcat(服務端的web服務端名)
content-encoding: gzip(服務端能夠傳送壓縮編碼型別)
content-length:
80(服務端傳送的壓縮資料的長度)
content-language: zh-cn(服務端傳送的語言型別)
content-type: text/html; charset=gb2312(服務端傳送的型別及採用的編碼方式)
last-modified: tue,
11 jul 200018:
23:51 gmt(服務端對該資源最後修改的時間)
服務端要求客戶端1秒鐘後,重新整理,然後訪問指定的頁面路徑)
content-disposition: attachment; filename=aaa.
zip transfer-encoding: chunked(分塊傳遞資料到客戶端)
set-cookie:ss=q0=5lb_nq; path=
/search(服務端傳送到客戶端的暫存資料)
expires:-1
//3種(服務端禁止客戶端快取頁面資料)
cache-control: no-cache(服務端禁止客戶端快取頁面資料)
pragma: no-cache(服務端禁止客戶端快取頁面資料)
connection: close(
1.0)/(
1.1)keep-alive(維護客戶端和服務端的連線關係)
date: tue,
11 jul 200018:
23:51 gmt(服務端響應客戶端的時間)3 在requests中設定請求頭headers
'''
'''import requests
# **ip位址
proxy =
# header頭資訊
headers =
# 請求url位址
url =
""# 提交請求爬取資訊
response = requests.get(url,headers=headers,proxies=proxy)
# 獲取響應碼
print
(response.status_code)
瀏覽器使用者**池資訊
user_agents =
['mozilla/5.0 (windows; u; windows nt 5.1; it; rv:1.8.1.11) gecko/20071127 firefox/2.0.0.11'
,'opera/9.25 (windows nt 5.1; u; en)'
,'mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; sv1; .net clr 1.1.4322; .net clr 2.0.50727)'
,'mozilla/5.0 (compatible; konqueror/3.5; linux) khtml/3.5.5 (like gecko) (kubuntu)',,
'lynx/2.8.5rel.1 libwww-fm/2.14 ssl-mm/1.4.1 gnutls/1.2.9',,
'mozilla/5.0 (x11; ubuntu; linux i686; rv:10.0) gecko/20100101 firefox/10.0',]
import random
agent = random.choice(user_agents)
# 隨機獲取乙個瀏覽器使用者資訊
Python網路爬蟲(瀏覽器偽裝技術)
基本格式 欄位名 字段值 2 欄位2 accept encoding gzip,deflate 這一行欄位的資訊表示瀏覽器可以支援gzip,deflate等壓縮編碼。3 欄位3 accept language zh cn,zh q 0.8,en us q 0.5,en q 0.3 這一行欄位的資訊表...
爬蟲瀏覽器的偽裝技術
1 大部分反爬蟲 會檢查使用者的 user agent 字段。簡單的偽裝只需要設定好 user agent 字段。高相似度的偽裝瀏覽器設定headers常見字段。2 通過獲取伺服器資訊進行反爬。通過使用 伺服器的方式解決。3 對於更加複雜的反爬機制的 可以運用selenium phantomjs聯合...
python瀏覽器偽裝技術
整理的python在進行爬蟲時,進行瀏覽器偽裝import urllib.request 以字典的形式設定headers accept language zh cn,zh q 0.8,en us q 0.5,en q 0.3 connection keep alive referer 設定cooki...