Ja3Requests
Ja3Requests is a http request library that can customize ja3 or h2 fingerprints.
中文文档
>>> import ja3requests
>>> session = ja3requests.Session()
>>> response = session.get("http://www.baidu.com/")
>>> response
<Response [200]>
>>> response.status_code
200
>>> response.headers
{'Content-Length': '405968', 'Content-Type': 'text/html; charset=utf-8', 'Server': 'BWS/1.1', 'Vary': 'Accept-Encoding', 'X-Ua-Compatible': 'IE=Edge,chrome=1', ...}
>>> response.text
'<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="Content-Type" content="text/html;char...'
Ja3Requests currently implements only the HTTP protocol and a few methods.
Installing Ja3Requests and Supported Versions
Ja3Requests is available on PyPI:
$ python -m pip install ja3requests
Ja3Requests officially supports Python 3.7+.
How To Use
Unreasonable Request Method
Ja3Requests supports multiple request methods such as Get, Post, Put, Delete, etc.
import ja3requests
session = ja3requests.session()
session.get("http://example.com/")
session.post("http://example.com/")
...
import ja3requests
headers = {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Connection": "keep-alive",
"Host": "example.com",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:120.0) Gecko/20100101 Firefox/120.0"
}
session = ja3requests.session()
response = session.get("http://example.com/", headers=headers)
print(response)
Use The Params Attribute
import ja3requests
session = ja3requests.session()
params = {
"page": 1,
"page_size": 100
}
response = session.get("http://example.com/", params=params)
print(response)
Post Data
import ja3requests
session = ja3requests.session()
data = {
"username": "admin",
"password": "admin"
}
response = session.post("http://example.com/", data=data)
print(response)
Post Json
import ja3requests
session = ja3requests.session()
data = {
"username": "admin",
"password": "admin"
}
response = session.post("http://example.com/", json=data)
print(response)
Post Files
import ja3requests
session = ja3requests.session()
with open("/user/home/demo.txt", "r") as f:
response = session.post("http://example.com/", files={"field_name": f})
print(response)
Use the proxies attribute
import ja3requests
session = ja3requests.session()
proxies = {
"http": "127.0.0.1:7890",
"https": "127.0.0.1:7890"
}
response = session.get("http://example.com/", proxies=proxies)
print(response)
Use the cookies attribute
import ja3requests
session = ja3requests.session()
cookies = {
"sessionId": "xxxx",
"userId": "xxxx",
}
response = session.get("http://example.com/", cookies=cookies)
print(response)
Allow Redirects
import ja3requests
session = ja3requests.session()
response = session.get("http://example.com/", allow_redirects=False)
print(response)
Reference