Selenium Chrome Webdriver FREEZE при доступе к методу get () - PullRequest
0 голосов
/ 01 января 2019

Я использую последнюю версию chromedriver 2.45.В настоящее время я создаю программу, которая собирает данные о запасах с веб-сайта.У меня есть список из примерно 3000 акций, и мне нужно получить доступ к трем веб-страницам на акции, поэтому я использовал многопоточность для ускорения своей работы.Так что в основном я должен вызывать функцию get 9000 раз.Однако иногда он останавливается при выполнении функции get:

 browser.get(url)

Для каждой акции перед запуском вышеуказанного сценария будет запускаться следующий сценарий:

options = Options()    
chrome_prefs = {}
options.experimental_options["prefs"] = chrome_prefs
chrome_prefs["profile.default_content_settings"] = {"images": 2}
chrome_prefs["profile.managed_default_content_settings"] = {"images": 2}
options.add_argument('--headless')
options.add_argument("–no-sandbox")
options.add_argument("--disable-gpu")
options.add_argument("--disable-extensions")
options.add_argument("disable-infobars")
options.add_argument('--disable-useAutomationExtension')
options.Proxy = None 
options.add_argument("–disable-dev-shm-usage")    
options.add_argument('blink-settings=imagesEnabled=false')
browser = webdriver.Chrome(options=options)
browser.minimize_window()

Печально то, чтокогда он застревает в линии, он не вызывает никаких исключений.Я полагаю, что поток пытается получить доступ к URL, но сайт не загружается, поэтому он просто продолжает ждать, и, поскольку я тестирую без заголовка, страница браузера выглядит пустой.Есть ли способ решить проблему?Какова возможная причина?

Или, может быть, выход - сделать таймер для browser.get (url), скажем, на 10 секунд, если он не получит никаких данных, он снова обновит ссылку и попытается получить источниккод еще раз, чтобы скрипт продолжал работать до конца?

...