Когда Selenium открывает страницу, она долго загружается и приостанавливает работу кода

Страница загружается мгновенно, если я сам открываю её через браузер. Если страница открывается драйвером Selenium'a, то она начинает загружаться 15-20 секунд. В это время работа кода останавливается, и приходится ждать окончания загрузки.

Я могу прервать загрузку страницы с помощью set_page_load_timeout(), но я хочу понять возможно ли остановить загрузку проще или какая моя ошибка приводит к наличию этой загрузки.

Страницы, на которых я заметил подобное поведение: https://www.mlbb.ninja/statistics , https://crossoutdb.com/#preset=crafting.rarity=special.craftable=true.order=20desc.

from selenium import webdriver
from bs4 import BeautifulSoup
from selenium.webdriver.common.by import By
import time

options = webdriver.ChromeOptions()
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36")
browser = webdriver.Chrome(options=options)

# browser.set_page_load_timeout(2)

try:
    browser.maximize_window()
    browser.get("https://www.mlbb.ninja/statistics")
    time.sleep(2)
    browser.find_element(By.CSS_SELECTOR, "[aria-label='Win Rate']").click()
    time.sleep(2)

except Exception as ex:
    print(ex)

finally:
    browser.quit()

Ответы (1 шт):

Автор решения: onik

Ты не пробовал на bs4 сделать?

Добавь больше заголовков - это может помочь с долгой загрузкой

Слипы сделай больше если код не успевает за страницей( sleep или имеющийся в selenium Explicit Waits(почитай в доке))

Используя selenium попробуй куксы с браузера привязать

Решение с использованием request

import  requests
s = requests.Session()
head = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36',
}

r = s.get('https://www.mlbb.ninja/', cookies={'Cookie': '_ga=GA1.1.502207133.17129******; _ga_21X1D9MLS4=GS1.1.1712940200.1.1*********'},headers=head)
print(r.status_code)

page_stat_all_hero = s.get('https://www.mlbb.ninja/_next/data/F1o2w-nSCB8AWpAZt4WfN/index.json',headers=head)
print(page_stat_all_hero.text) #тут json в котором вся инфа о каждом герое (от id до pick_rate)

#-->тут ты допустим берешь все id и клепаешь ссылки на каждого героя, переходишь по ним и парсишь<--#

one_hero = s.get('https://www.mlbb.ninja/heroes/88',headers=head)
print(hero.text) #тута уже парсишь к примеру текущую статистику или инфу по скилам
→ Ссылка