@TZbooo

Из-за медленного интернета selenium не загружает важные js файлы?

Я делаю парсер яндекс услуг и для того, чтобы получить телефон мастера, нужно нажать на кнопку "получить телефон", которая с помощью ключа расшифрует телефон, телефон на странице нигде не хранится. Делается это с помощью javascript, файлы которого не загружаются из-за медленного интенета (ростелеком сука). Вопрос: можно ли как-то установить таймаут, чтобы браузер подольше пытался загрузить js? Может есть способ загружать на страницу selenium локальные js файлы?
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
@duff89
Возможно помогу, если Вы имеете ввиду файлы js (или любые другие типа css), которые постоянно грузятся одни и те же с сайта без изменения, то можно их подменить на локальные. Сделать можно через selenium-wire
Суть примерно такая:
self.driver.request_interceptor = interceptor  # ставим подмену запросов
def interceptor(request):
    """Подмена css на локальные"""

    """эти файлы не меняем"""
    real_urls = (
        'styles.css',

    )
    if str(request.url)[-4:] == '.css':
        """Ищем название файла"""
        file = re.search(r"/([^/]+\.css)$", str(request.url)).group(1)
        if file not in real_urls:
            try:
                request.create_response(
                    status_code=200,
                    headers={'Content-Type': 'text/css'},  # Optional headers dictionary
                    body=open(f'fake_files/{file}').read()  # Optional body
                )
            except:
                pass

Код не идеальный, но суть понять можно
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Не уверен что это поможет, но попробуй сменить DNS сервер, с дефолтного РТК на какой-нибудь Яндекс.
У меня в целом были проблемы с подгрузкой страниц пока я на роутере их ДНСы не сменил
Ответ написан
Ваш ответ на вопрос

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

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