shamhi / HamsterKombatBot

Bot that mines coins in HamsterKombat
Apache License 2.0
438 stars 131 forks source link

Генерация headers #232

Closed 4erdenko closed 3 weeks ago

lolyinseo commented 3 weeks ago

Так делать НЕ нужно

4erdenko commented 3 weeks ago

Так делать НЕ нужно

Потому что ?

lolyinseo commented 3 weeks ago

Так делать НЕ нужно

Потому что ?

Потому что это не валидные заголовки от мобильного браузера, а приложение рендерится в WebView

4erdenko commented 3 weeks ago

Так делать НЕ нужно

Потому что ?

Потому что это не валидные заголовки от мобильного браузера, а приложение рендерится в WebView

Ты мог бы пожалуйста показать валидный пример заголовков ?

lolyinseo commented 3 weeks ago

Так делать НЕ нужно

Потому что ?

Потому что это не валидные заголовки от мобильного браузера, а приложение рендерится в 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 ессно тут важно и разнообразие, тысячи запросов с одним заголовком это прям проситься в бан, вот зачем нужны профили, которых нет

4erdenko commented 3 weeks ago

Так делать НЕ нужно

Потому что ?

Потому что это не валидные заголовки от мобильного браузера, а приложение рендерится в 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())

Могу тогда пока такое предложить. Всё равно это будет лучше статики текущей.

Sanlovty commented 3 weeks ago

@4erdenko @lolyinseo А случайно в тг нет готового эппа, которое позволит отследить заголовки, которые мы отправляем? Просто я перехватывал через fidler запросы при входе в хамстер и у меня они отправляются с UserAgent: Dalvik/2.1.0 (Linux; U; Android 14; CPH2465 Build/UKQ1.230924.001) и ниакого webview.

4erdenko commented 3 weeks ago

@4erdenko @lolyinseo А случайно в тг нет готового эппа, которое позволит отследить заголовки, которые мы отправляем? Просто я перехватывал через fidler запросы при входе в хамстер и у меня они отправляются с UserAgent: Dalvik/2.1.0 (Linux; U; Android 14; CPH2465 Build/UKQ1.230924.001) и ниакого webview.

Я если честно вообще не в курсе. Вообще думаю до таких деталей там никому дела нет.

Просто хочу динамический шаблон сделать. ( А потом весь код разбить на модули )