爬蟲之瀏覽器指紋ja3_hash的更改


瀏覽器指紋

反爬中會遇到瀏覽器指紋,它是不會隨着你更換 IP 或者 User-Agent 而改變的。並且他們的指紋每次請求也是固定的。只要網站發現某個擁有特定指紋的客戶端持續高頻率請求網站,它就可以把你封掉。例子如下:

https://ja3er.com/ # 可以看到ja3的指紋
https://ja3er.com/json # 請求這個直接返回本次請求的json

當在網頁打開的時候是這樣的

未修改requests加密的時候請求打開是這樣的

因為通過python,或者瀏覽器,或者其他解釋器 得到的結果都是不一樣的, 但是每個解釋器里面的請求是一樣的,所以,我們要修改 ja3_hash 的值,因為代碼修改是參考別人的,所以就直接粘出來好了,具體解釋去網上看看

新建一個Py文件,然后復制代碼

import random
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.ssl_ import create_urllib3_context

ORIGIN_CIPHERS = ('ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:'
'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES')

# 覆蓋父類的適配器
class DESAdapter(HTTPAdapter):
    def __init__(self, *args, **kwargs):
        """
        A TransportAdapter that re-enables 3DES support in Requests.
        """
        CIPHERS = ORIGIN_CIPHERS.split(':')
        random.shuffle(CIPHERS)
        CIPHERS = ':'.join(CIPHERS)
        self.CIPHERS = CIPHERS + ':!aNULL:!eNULL:!MD5'
        super().__init__(*args, **kwargs)
        
        
    def init_poolmanager(self, *args, **kwargs):
        context = create_urllib3_context(ciphers=self.CIPHERS)
        kwargs['ssl_context'] = context
        return super(DESAdapter, self).init_poolmanager(*args, **kwargs)

    def proxy_manager_for(self, *args, **kwargs):
        context = create_urllib3_context(ciphers=self.CIPHERS)
        kwargs['ssl_context'] = context
        return super(DESAdapter, self).proxy_manager_for(*args, **kwargs)

import requests
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67'}
# 有了適配器以后,我們使用 requests 時,初始化一個 Session,然后把這個適配器綁定到特定的網站上:
s = requests.Session()
s.headers.update(headers)

for _ in range(2):
    s.mount('https://ja3er.com', DESAdapter()) # s.mount的第一個參數表示這個適配器只在https://ja3er.com開頭的網址中生效
    resp = s.get('https://ja3er.com/json').json()
    print(resp)

執行py代碼,會看到ja3_hash已經被修改了

成功。這樣就可以繞過 ja3_hash 指紋檢測的網站了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM