From fefa50117c4c67c6a5a7dd39a58e0bdb2fd1e88d Mon Sep 17 00:00:00 2001 From: luzhisheng Date: Sat, 13 Jan 2024 21:29:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../猿人学第19题-Ja3指纹加密/README.md | 3 ++ .../猿人学第19题-Ja3指纹加密/readme.md | 5 -- .../猿人学第19题-Ja3指纹加密/yrx19.py | 10 ++++ .../猿人学第19题-Ja3指纹加密/测试.py | 47 +++---------------- .../猿人学第19题-Ja3指纹加密/测试2.py | 40 ---------------- 5 files changed, 20 insertions(+), 85 deletions(-) create mode 100644 猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/README.md delete mode 100644 猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/readme.md create mode 100644 猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/yrx19.py delete mode 100644 猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/测试2.py diff --git a/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/README.md b/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/README.md new file mode 100644 index 0000000..286accf --- /dev/null +++ b/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/README.md @@ -0,0 +1,3 @@ +文档地址 + +https://blog.csdn.net/u010226586/article/details/135564308 \ No newline at end of file diff --git a/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/readme.md b/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/readme.md deleted file mode 100644 index 300b90d..0000000 --- a/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -js逆向知识-Ja3指纹学习 - - https://blog.csdn.net/weixin_43411585/article/details/122314214 - - https://jishuin.proginn.com/p/763bfbd73fc3 \ No newline at end of file diff --git a/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/yrx19.py b/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/yrx19.py new file mode 100644 index 0000000..2677b57 --- /dev/null +++ b/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/yrx19.py @@ -0,0 +1,10 @@ +from curl_cffi import requests + +headers = { + 'cookie': 'sessionid=xxxxxxxxx;' +} + +# 注意这个 impersonate 参数,指定了模拟哪个浏览器 +r = requests.get("https://match.yuanrenxue.cn/api/match/19?page=3", headers=headers, impersonate="chrome101") + +print(r.json()) diff --git a/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/测试.py b/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/测试.py index fcde3e5..f66a6e5 100644 --- a/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/测试.py +++ b/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/测试.py @@ -1,45 +1,12 @@ import requests -import json -from requests.adapters import HTTPAdapter -from requests.packages.urllib3.util.ssl_ import create_urllib3_context -CIPHERS = ( - 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:RSA+3DES:!aNULL:' - '!eNULL:!MD5' -) +url = "https://match.yuanrenxue.cn/api/match/19?page=1" +payload = {} +headers = { + 'cookie': 'sessionid=ieirkmfqa2qsj29uapsh4bdaj59vggj2;' +} -class DESAdapter(HTTPAdapter): - def init_poolmanager(self, *args, **kwargs): - context = create_urllib3_context(ciphers=CIPHERS) - kwargs['ssl_context'] = context - return super(DESAdapter, self).init_poolmanager(*args, **kwargs) +response = requests.request("GET", url, headers=headers, data=payload) - def proxy_manager_for(self, *args, **kwargs): - context = create_urllib3_context(ciphers=CIPHERS) - kwargs['ssl_context'] = context - return super(DESAdapter, self).proxy_manager_for(*args, **kwargs) - - -s = requests.Session() -s.mount('https://match.yuanrenxue.com', DESAdapter()) - - -def get_num(s): - num = 0 - for i in range(1, 6): - url = f"https://match.yuanrenxue.com/api/match/19?page={i}" - Headers = { - "user-agent": "yuanrenxue.project", - "cookie": "sessionid=8rrqpz36de5lnyebo9jfg4bkzkda7vgt;" - } - res = s.get(url=url, headers=Headers) - res_dict = json.loads(res.text) - print(res_dict) - data = res_dict.get('data') - for i in data: - num += i['value'] - print(num) - - -get_num(s) +print(response.text) diff --git a/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/测试2.py b/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/测试2.py deleted file mode 100644 index ac857c2..0000000 --- a/猿人学Web端爬虫攻防刷题平台/猿人学第19题-Ja3指纹加密/测试2.py +++ /dev/null @@ -1,40 +0,0 @@ -from requests.adapters import HTTPAdapter -from requests.packages.urllib3.util.ssl_ import create_urllib3_context -import random - -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'} -s = requests.Session() -s.headers.update(headers) - -for _ in range(5): - s.mount('https://ja3er.com', DESAdapter()) - resp = s.get('https://ja3er.com/json').json() - print(resp)