Python 爬蟲瀏覽器偽裝技術

2021-09-27 08:16:23 字數 2924 閱讀 4263

瀏覽器偽裝技術實戰

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