@dimitriy_tkachenko

Как steam может идентифицировать парсер?

Есть бот, парсит стим площадку. Конечно, периодически улетает в бан с кодом 429(много запросов). Стим retry-after не выдает, время приходится угадывать вслепую. Подключил tor c privoxy и через них пускаю парсинг. Если менять айпи каждый запрос - то стим не идентифицирует, но это слишком затратно по времени. Если же менять айпи сразу после бана, то стим даже под другим айпи идентифицирует парсер и снова бан, как так-то?
session = requests.session()
proxies = {"http": "http://127.0.0.1:8118",
           "https": "https://127.0.0.1:8118"}
cookies = {'Steam_Language': "russian"}
headers = {'user-agent': UserAgent().random}

def get_html(url):
    global session, headers
    while True:
        html = session.get(url, cookies=cookies, headers=headers, proxies=proxies)
        time.sleep(random.choice([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7]))
        while True:
            if html.status_code == 200:
                return html
            elif html.status_code == 400:
                return None
            elif html.status_code == 429:
                CM().new_identity() #  смена айпи
                session = requests.session() #  смена сессии/подключения
                headers = {'user-agent': UserAgent().random} #  смена юзер-агента
                time.sleep(random.randint(6, 14))
            else:
                return None
  • Вопрос задан
  • 1346 просмотров
Пригласить эксперта
Ответы на вопрос 1
Jump
@Jump
Системный администратор со стажем.
Вариантов - сотни.
Идентификация по IP адресу это самая популярная, и самая неточная. Один и тот же юзер может заходить с разных адресов, с одного адреса могут ходить сотни юзеров.
Кроме IP есть еще такие вещи как информация о системе пользователя - установленные драйвера, софт, системные настройки, разрешение экрана. В общем любая информация к которой имеет доступ браузер.
Каждый из таких идентификаторов в общем то не имеет смысла - версию браузера можно подделать, и разрешение экрана, и прочие вещи. А вот в сумме эта информация дает достаточно уникальный идентификатор пользователя.
Так же нередко используются паттерны поведения пользователя - нормальнй пользователь и бот действуют совершенно по разному. Порядок обхода страниц, паузы на просмотр страницы, перемещения мыши в процессе - у бота все это будет заметно отличаться от реального пользователя.
Многие сервисы сами регулярно обновляют список доступных публичных прокси - и если кто-то заходит к ним с адреса публичного прокси сразу банят.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы