Closed 4erdenko closed 3 weeks ago
Так делать НЕ нужно
Потому что ?
Так делать НЕ нужно
Потому что ?
Потому что это не валидные заголовки от мобильного браузера, а приложение рендерится в WebView
Так делать НЕ нужно
Потому что ?
Потому что это не валидные заголовки от мобильного браузера, а приложение рендерится в WebView
Ты мог бы пожалуйста показать валидный пример заголовков ?
Так делать НЕ нужно
Потому что ?
Потому что это не валидные заголовки от мобильного браузера, а приложение рендерится в WebView
Ты мог бы пожалуйста показать валидный пример заголовков ?
для хрома sec_ch_ua: str = 'Android WebView";v="125", "Chromium";v="125", "Not?A_Brand";v="24'
где v=24 версия Android API (24 = Android 7)
UA брать с https://explore.whatismybrowser.com/useragents/explore/software_name/android-webview/ соотв номером Android. но оно померло сейчас, как на зло, приходиться гуглить. Пример
Mozilla/5.0 (Linux; Android 7; LM-Q610.FGN Build/PKQ1.190522.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/125.0.6422.112 Mobile Safari/537.36
wv - значит WebView ессно тут важно и разнообразие, тысячи запросов с одним заголовком это прям проситься в бан, вот зачем нужны профили, которых нет
Так делать НЕ нужно
Потому что ?
Потому что это не валидные заголовки от мобильного браузера, а приложение рендерится в WebView
Ты мог бы пожалуйста показать валидный пример заголовков ?
для хрома sec_ch_ua: str = 'Android WebView";v="125", "Chromium";v="125", "Not?A_Brand";v="24'
где v=24 версия Android API (24 = Android 7)
UA брать с https://explore.whatismybrowser.com/useragents/explore/software_name/android-webview/ соотв номером Android. но оно померло сейчас, как на зло, приходиться гуглить. Пример
Mozilla/5.0 (Linux; Android 7; LM-Q610.FGN Build/PKQ1.190522.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/125.0.6422.112 Mobile Safari/537.36
wv - значит WebView ессно тут важно и разнообразие, тысячи запросов с одним заголовком это прям проситься в бан, вот зачем нужны профили, которых нет
import random
from fake_useragent import UserAgent
def get_mobile_user_agent():
ua = UserAgent(platforms=['mobile'], os=['android'])
user_agent = ua.random
if "wv" not in user_agent:
parts = user_agent.split(")")
parts[0] += "; wv"
user_agent = ")".join(parts)
return user_agent
def get_headers():
android_version = random.randint(24, 33)
webview_version = random.randint(70, 125)
headers = {
'Accept': 'application/json',
'Accept-Language': 'ru-RU,ru;q=0.9',
'Content-Type': 'application/json',
'Connection': 'keep-alive',
'Origin': 'https://hamsterkombat.io',
'Referer': 'https://hamsterkombat.io/',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-site',
'Sec-Ch-Ua': f'"Android WebView";v="{webview_version}", "Chromium";v="{webview_version}", "Not?A_Brand";v="{android_version}"',
'Sec-Ch-Ua-mobile': '?1',
'Sec-Ch-Ua-platform': '"Android"',
'User-Agent': get_mobile_user_agent(),
}
return headers
print(get_mobile_user_agent())
Могу тогда пока такое предложить. Всё равно это будет лучше статики текущей.
@4erdenko @lolyinseo А случайно в тг нет готового эппа, которое позволит отследить заголовки, которые мы отправляем? Просто я перехватывал через fidler запросы при входе в хамстер и у меня они отправляются с UserAgent: Dalvik/2.1.0 (Linux; U; Android 14; CPH2465 Build/UKQ1.230924.001)
и ниакого webview.
@4erdenko @lolyinseo А случайно в тг нет готового эппа, которое позволит отследить заголовки, которые мы отправляем? Просто я перехватывал через fidler запросы при входе в хамстер и у меня они отправляются с
UserAgent: Dalvik/2.1.0 (Linux; U; Android 14; CPH2465 Build/UKQ1.230924.001)
и ниакого webview.
Я если честно вообще не в курсе. Вообще думаю до таких деталей там никому дела нет.
Просто хочу динамический шаблон сделать. ( А потом весь код разбить на модули )
Так делать НЕ нужно