Comments 12
И что, какой результат, удалось заработать? Всё же год прошёл уже.
0
вместо sleep лучше использовать driver.implicitly_wait(), а еще должен есть метод который ждет до появления элемента на странице:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, «myDynamicElement»))
Это на питоне, но думаю смысл понятен
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, «myDynamicElement»))
Это на питоне, но думаю смысл понятен
+3
а разве на ноджс это сейчас не делают без костылей?
0
Это всё круто, но мне кажется, Selenium — крайняя мера. Я бы разбирал, какие запросы делаются, и повторял бы их. Просто Selenium — слишком жирно
-1
Да, в идеальном мире это так. Но когда у цели навороченный ajax, с авторизацией юзера, хешированными куками, адаптацией под конкретный браузер, то очень часто бывает, что без браузера просто не обойтись. Более того часто даже очень легковесные старички-эмуляторы а ля PhantomJS не вывозят, приходится аж целый chrome с --headless заводить. А если антиддос сайта начнет еще и капчи показывать, то там все вообще весело получается.
Так что для универсальности решения Selenium все же потребуется.
З.Ы. Но Thread.Sleep(5000); — это да, очень криво. Есть же прямо на борту у Selenium намного лучше инструменты для таймингов.
+1
Websocketы и динамические данные так можно перехватывать?
0
У puppeteer для ноды, который работает похожим образом, есть методы для ожидания появления на странице конкретных элементов, например waitForSelector, это как по мне намного лучше чем Sleep(). Полагаю у селениума тоже есть подобное.
0
Динамические данные можно получать используя селекторы, например xpath. Однако надо дождаться полной загрузки страницы. Websocket'ы, по идее, можно перехватывать с помощью прокси-сервера, ибо через него проходит весь интернет-трафик.
0
Это всё понятно, а каким образом можно обходить 429 «Too many requests»? Вот это прям сильно тормозит.
0
Sign up to leave a comment.
Парсим любой сайт за считанные секунды. Как достать нужную информацию с сайта используя Selenium, XPath и Proxy Sever