欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Python爬蟲反爬手段有哪些

這篇文章給大家分享的是有關(guān)Python爬蟲反爬手段有哪些的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都網(wǎng)站制作、浦口網(wǎng)絡(luò)推廣、小程序設(shè)計(jì)、浦口網(wǎng)絡(luò)營銷、浦口企業(yè)策劃、浦口品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供浦口建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.chinadenli.net

反爬方式的種類

1、判斷請(qǐng)求頭來進(jìn)行反爬

這是很早期的網(wǎng)站進(jìn)行的反爬方式

  • User-Agent 用戶代理

  • referer   請(qǐng)求來自哪里

  • cookie   也可以用來做訪問憑證

解決辦法:請(qǐng)求頭里面添加對(duì)應(yīng)的參數(shù)(復(fù)制瀏覽器里面的數(shù)據(jù))

2、根據(jù)用戶行為來進(jìn)行反爬

  • 請(qǐng)求頻率過高,服務(wù)器設(shè)置規(guī)定時(shí)間之內(nèi)的請(qǐng)求閾值  
    解決辦法:降低請(qǐng)求頻率或者使用代理(IP代理)

  • 網(wǎng)頁中設(shè)置一些陷阱(正常用戶訪問不到但是爬蟲可以訪問到)  
    解決辦法:分析網(wǎng)頁,避開這些特殊陷阱

  • 請(qǐng)求間隔太短,返回相同的數(shù)據(jù)
    解決辦法:增加請(qǐng)求間隔

3、js加密

反爬方式中較為難處理的一類。
js加密的原理:服務(wù)器響應(yīng)給瀏覽器的js文件,可以動(dòng)態(tài)的生成一些加密參數(shù),瀏覽器會(huì)根據(jù)js的計(jì)算 得到這些參數(shù),在請(qǐng)求中帶入進(jìn)來,如果請(qǐng)求中沒有這些參數(shù),那么服務(wù)器就任務(wù)請(qǐng)求無效。

Python爬蟲反爬手段有哪些

4、字體加密

字體反爬,是一種常見的反爬技術(shù),網(wǎng)站采用了自定義的字體文件,在瀏覽器上正常顯示,但是爬蟲抓取下來的數(shù)據(jù)要么就是亂碼,要么就是變成其他字符。采用自定義字體文件是CSS3的新特性,熟悉前端的同學(xué)可能知道,就是font-face屬性。

Python爬蟲反爬手段有哪些

6、md5相關(guān)知識(shí)

MD5,消息摘要算法,一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個(gè)128位(16字節(jié))的散列值(hash value),用于確保信息傳輸完整一致。MD5是最常見的摘要算法,速度很快,生成結(jié)果是固定的128 bit字節(jié),通常用一個(gè)32位的16進(jìn)制字符串表示。MD5的特點(diǎn):
1.不可逆:不能從密文推導(dǎo)出明文。
2.不管明文長度為多少,密文的長度都固定。
3.密文之間不會(huì)重復(fù)。

import hashlib
print(hashlib.md5('python'.encode()).hexdigest())

字符串python加密后的結(jié)果:

23eeeb4347bdd26bfc6b7ee9a3b755dd

7、base64

Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個(gè)可打印字符來表示二進(jìn)制數(shù)據(jù)的方法。Base64編碼是從二進(jìn)制到字符的過程,可用于在HTTP環(huán)境下傳遞較長的標(biāo)識(shí)信息。采用Base64編碼具有不可讀性,需要解碼后才能閱讀。

import base64

#python中base64的加密
print(base64.b64encode('python'.encode()).decode())
#python中base64的解密
print(base64.b64decode('Y2hpbmE='.encode()).decode())

結(jié)果:

cHl0aG9u
china

二、驗(yàn)證碼驗(yàn)證

自己動(dòng)手看驗(yàn)證碼(古詩詞網(wǎng))

import requests

url = "gushiwen.org"

session = requests.Session()

text = session.get(url).text

#  解析響應(yīng),找到驗(yàn)證碼的圖片地址,
#  下載驗(yàn)證碼圖片,保存
with open('code.jpg', 'wb')as f:
    f.write('驗(yàn)證碼的url地址'.encode())

code = input('驗(yàn)證碼是: ')

login_url = "login.com"

data = {
    "username": 'xx',
    "password": 'xx',
    "code": code
}
requests.post(url, data=data)

使用打碼平臺(tái)(圖鑒)

新建一個(gè)captcha_api.py

import json
import requests
import base64
from io import BytesIO
from PIL import Image
from sys import version_info


def base64_api(uname, pwd, img):
    img = img.convert('RGB')
    buffered = BytesIO()
    img.save(buffered, format="JPEG")
    if version_info.major >= 3:
        b64 = str(base64.b64encode(buffered.getvalue()), encoding='utf-8')
    else:
        b64 = str(base64.b64encode(buffered.getvalue()))
    data = {"username": uname, "password": pwd, "image": b64}
    result = json.loads(requests.post("http://api.ttshitu.com/base64", json=data).text)
    if result['success']:
        return result["data"]["result"]
    else:
        return result["message"]
    return ""


def request_captcha(uname, pwd, img_path):
    img_path = img_path  # 待驗(yàn)證的驗(yàn)證碼路徑
    img = Image.open(img_path)
    result = base64_api(uname, pwd, img)
    #  傳入賬號(hào) 密碼 和圖片
    print(result)

新建use_code.py,調(diào)用接口

img_path = '圖片路徑'

from captcha_api import request_captcha

ret = request_captcha("賬號(hào)", "密碼", img_path)

感謝各位的閱讀!關(guān)于“Python爬蟲反爬手段有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

網(wǎng)頁題目:Python爬蟲反爬手段有哪些
本文鏈接:http://www.chinadenli.net/article38/gpcepp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航網(wǎng)站營銷外貿(mào)網(wǎng)站建設(shè)Google響應(yīng)式網(wǎng)站企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)