Тёмный

Скрейпинг сайтов с помощью библиотеки Selenium 

Мастерская Важных историй
Подписаться 12 тыс.
Просмотров 41 тыс.
50% 1

ДАННОЕ СООБЩЕНИЕ (МАТЕРИАЛ) СОЗДАНО И (ИЛИ) РАСПРОСТРАНЕНО ИНОСТРАННЫМ СРЕДСТВОМ МАССОВОЙ ИНФОРМАЦИИ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА, И (ИЛИ) РОССИЙСКИМ ЮРИДИЧЕСКИМ ЛИЦОМ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА
____________
❗❗❗Так называемое Министерство юстиции РФ признало «Важные истории» «нежелательной организацией». Так что репост этого и любого другого нашего видео может караться штрафом, а повторный репост - уголовным делом.
Но никто не может запретить вам смотреть и думать. Поэтому подписывайтесь на наш канал, просите подписаться своих друзей и оставайтесь с нами - в это темное время выжить мы сможем только вместе.
____________
На примере сайта реестра бюджетных организаций учимся скрейпить данные с помощью библиотеки Selenium.
🔹 Текстовая версия
➡️ www.istories.media/workshops/...
🔹Подписаться на рассылку Мастерской «Важных историй»:
➡️ mailchi.mp/istories.media/wor...
🔹Telegram-канал Мастерской
➡️ t.me/istories_workshop

Опубликовано:

 

19 сен 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 104   
@istories_workshop
@istories_workshop 2 года назад
❗❗❗Так называемое Министерство юстиции РФ признало «Важные истории» «нежелательной организацией». Так что репост этого и любого другого нашего видео может караться штрафом, а повторный репост - уголовным делом. Но никто не может запретить вам смотреть и думать. Поэтому подписывайтесь на наш канал, просите подписаться своих друзей и оставайтесь с нами - в это темное время выжить мы сможем только вместе.
@ambro4580
@ambro4580 2 года назад
все это грустно( кстати, этот сайт теперь без vpn не работает, как, правда, и тысячи других сайтов
@maratdgh4679
@maratdgh4679 11 месяцев назад
Отлично подан материал, спасибо. А почетное звание иностранного агента это знак качества. Не стоит переживать из-за этого.
@fghhna
@fghhna Год назад
Очень приятная и качественная подача информации. Спасибо вам за ваш труд. Подписался.
@greregreew9451
@greregreew9451 Год назад
Спасибо большое,за такую понятную подачу материала. Я даже на виндоус смог все понять,многих блогеров перебрал ничего не понял,а вы прям все подробно обьяснили!
@evgenyr7127
@evgenyr7127 2 года назад
Очень круто объясняешь!
@bannylifegeekpost8627
@bannylifegeekpost8627 Год назад
Спасибо за урок! Очень помогла
@MrFanRam
@MrFanRam Год назад
Отлично! Спасибо Вам за работу
@non5309
@non5309 2 года назад
спасибо за видео, оч. полезное!
@andreyandreyovich5454
@andreyandreyovich5454 Год назад
Дякую, достатньо коротко й зрозуміло
@user-hd3us5ge7t
@user-hd3us5ge7t 2 года назад
Годный контент, лайк.
@sexualvampir
@sexualvampir Год назад
Умная девушка и голос приятный 🙂
@bujanovaes
@bujanovaes Год назад
Спасибо, крутое видео 👍
@quickbird2532
@quickbird2532 Год назад
Спасибо! Всё очень понятно объяснили
@daddy_eddy
@daddy_eddy Год назад
Понятно-то объяснили. А повторить вы смогли?
@quickbird2532
@quickbird2532 Год назад
@@daddy_eddy смог
@volodea13
@volodea13 9 месяцев назад
Боже, как же она доступно объясняет
@user-zc6uj5gh7g
@user-zc6uj5gh7g 2 года назад
Вот как можно учить что-то с такой ведущей 😍
@istories_workshop
@istories_workshop 2 года назад
Прилежно!
@JohnDoe-hp5kw
@JohnDoe-hp5kw 2 года назад
Круто, это даже удобнее чем bs4
@user-sr6je8zm9u
@user-sr6je8zm9u 2 года назад
хорошее видео
@vovaR1
@vovaR1 6 месяцев назад
Девушка вы топ ❤ 😊 это огонь а не урок Я не шарю в этом и все понял 10/10
@abaymakhanbetov3787
@abaymakhanbetov3787 2 года назад
20:09 ошибка связана не тем что не успевает прогружатся, а потому что c 8 страницы начинаются заголовки с другим названием тега и класса.
@yaroslav1892
@yaroslav1892 Год назад
Спасибо за ваш комментарий, очень помогло!
@zakirovio
@zakirovio Год назад
Добрый день. На сайте из примера с учреждениями можно забирать данные из ответа в json
@Developer_python_
@Developer_python_ Год назад
Спасибі
@nickyr42
@nickyr42 2 года назад
В последних версиях селениума (v4 и выше), окошко Хрома отрывается на момент работы программы, как только код заканчивается, окно Хрома сворачивается. Поэтому надо прописывать sleep(). Для настройки и написания кода, можно сначала использовать версию селена, как на видео.
@istories_workshop
@istories_workshop 2 года назад
Спасибо большое за это дополнение! ДАННОЕ СООБЩЕНИЕ (МАТЕРИАЛ) СОЗДАНО И (ИЛИ) РАСПРОСТРАНЕНО ИНОСТРАННЫМ СРЕДСТВОМ МАССОВОЙ ИНФОРМАЦИИ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА, И (ИЛИ) РОССИЙСКИМ ЮРИДИЧЕСКИМ ЛИЦОМ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА
@JohnDoe-hp5kw
@JohnDoe-hp5kw 2 года назад
Спасибо тебе добрый человек Я всю голову сломал, в чем может быть ошибка)
@dmitrijgaliyllin5642
@dmitrijgaliyllin5642 10 месяцев назад
Библиотека sleep )))
@art_alf-b9b
@art_alf-b9b Месяц назад
симпотичная девочка)
@user-nr5pq9bl2f
@user-nr5pq9bl2f 11 месяцев назад
Даже обидно как сейчас все в легком доступе для каждого)
@oldlipton3443
@oldlipton3443 2 года назад
Спасибо! А текстовая версия урока будет доступна?
@istories_workshop
@istories_workshop 2 года назад
Обязательно. Но чуть-чуть попозже ДАННОЕ СООБЩЕНИЕ (МАТЕРИАЛ) СОЗДАНО И (ИЛИ) РАСПРОСТРАНЕНО ИНОСТРАННЫМ СРЕДСТВОМ МАССОВОЙ ИНФОРМАЦИИ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА, И (ИЛИ) РОССИЙСКИМ ЮРИДИЧЕСКИМ ЛИЦОМ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА
@istories_workshop
@istories_workshop 2 года назад
ДАННОЕ СООБЩЕНИЕ (МАТЕРИАЛ) СОЗДАНО И (ИЛИ) РАСПРОСТРАНЕНО ИНОСТРАННЫМ СРЕДСТВОМ МАССОВОЙ ИНФОРМАЦИИ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА, И (ИЛИ) РОССИЙСКИМ ЮРИДИЧЕСКИМ ЛИЦОМ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА

 Добавили в описание!
@oldlipton3443
@oldlipton3443 2 года назад
@@istories_workshop Большое спасибо за напоминание🙂!
@Mr6epkym
@Mr6epkym Год назад
Можно как-то задать в коде ожидание окончания прогрузки страницы не через sleep? Ведь из-за плохого соединения страница может не успеть прогрузиться, а делать большие задержки слишком расточительно по времени
@evgenius8565
@evgenius8565 2 месяца назад
Можно попробовать timeout
@ivankrecker9210
@ivankrecker9210 Год назад
Здравствуйте. Когда soup меняю на item в цикле пишет - 'NoneType' object has no attribute 'text'. В чем может быть дело? Спасибо.
@vovaR1
@vovaR1 6 месяцев назад
А если нужно войти сначала на сайт по логину и паролю То как мы должный действовать и какой код ?
@MrDimax79
@MrDimax79 Год назад
Что делать если сайт требует капчу при работе селениума?
@chessketeer
@chessketeer 2 года назад
Спасибо за качественный тьюториал. Вопрос: а как переходить со страницы на страницу, если нет кнопки "Следующая страница". На сайте, который вы используете в видео, такой кнопки сейчас нет.
@Denmark1150
@Denmark1150 2 года назад
по идее можно реализовать через адрес страницы, как это делали в примере с топ 250 фильмами из кинопоиска. В видео при переходе на последующие страницы адресная строка не меняется. Сейчас же она уже изменяется. registry?d-442831-p=1&agencyTypesDropDownValue Так, например выглядит урл первой страницы registry?d-442831-p=2&agencyTypesDropDownValue А так 2ой. Мы можем через f строки подставить {p} вместо номера страницы во внешнем цикле и тогда номер страницы будет соответсововать значению P. Но я не пойму как это все сделать(
@Denmark1150
@Denmark1150 2 года назад
придумал в общем. вместо browser.find_element_bu_class_name('pagination__next').click() пишем browser.find_element_by_css_selector(f'body > div.main > ui-view > ui-view-ng-upgrade > ui-view > app-registry > div.results > div > div:nth-child(3) > div > div.b-controls__left_40.pagination_box1 > app-pagination > div > div > div:nth-child({p})').click() И внеший цикл делаем for p in range(2, 11): Старницы начинаю переключаться и до определенной страницы они делают это правильно, а потом начинается что-то непонятное.
@chessketeer
@chessketeer 2 года назад
@@Denmark1150 Спасибо, я тоже не разобрался как это сделать(. Кроме того, есть желание кликать на кнопку следующей страницы, чтобы имитировать поведение пользователя.
@chessketeer
@chessketeer 2 года назад
@@Denmark1150 Спасибо, этот вариант попробую.
@f4ke543
@f4ke543 Год назад
@@Denmark1150 привет, вопрос хочу задать, вот у меня есть сайт с товарами который нужно спарсить, и у каждого товара есть своя страница, вот если мне нужны отдельные некоторые товары, то мне нужно копировать ссылку на товар и к ней писать код для сбора данных? и так для всех товаров которые я хочу спарсить, код же получится достаточно длинным. а также как мне нужен парсер который будет собирать данные 24/7 каждых 2-3 секунды, как это все организовать? если знаешь то отпиши пожалуйста!
@alexeymendrin
@alexeymendrin 2 года назад
Друзья, мы в курсе, что вам нужно отчет подавать и что Роман приболел, но мы соскучилсь по продолжению и хорошим людям. Здоровья и выдержки!
@bubblegum9545
@bubblegum9545 Год назад
Никогда бы не подумал, что селениум может пригодиться в журналистике...
@trolik751
@trolik751 2 года назад
Приятно и легко смотрится , но есть один интересный момент , как получить нужные нам информацию не запуская видимо браузер?
@istories_workshop
@istories_workshop 2 года назад
Почитайте про PhantomJS у Selenium, она как раз делает именно это. ДАННОЕ СООБЩЕНИЕ (МАТЕРИАЛ) СОЗДАНО И (ИЛИ) РАСПРОСТРАНЕНО ИНОСТРАННЫМ СРЕДСТВОМ МАССОВОЙ ИНФОРМАЦИИ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА, И (ИЛИ) РОССИЙСКИМ ЮРИДИЧЕСКИМ ЛИЦОМ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА
@n3tium
@n3tium Год назад
задать опции в коде? не?
@Sh.Vladislav
@Sh.Vladislav 9 месяцев назад
Где вы были раньше 😂 Прошел два ДПО и в каждом про Парсинг один беглый вебинар на супер простом сайте, а когда решил спарсить для выпускного проекта метрики с шазама…. Ну в общем для меня это оказалось болью)))
@zhandosissayev9798
@zhandosissayev9798 Год назад
10:45 13:10 14:30 15:10 15:35 17:40 19:20
@user-nx1ld8xh5e
@user-nx1ld8xh5e Месяц назад
Точку вместо пробела в названии класса ставишь и все норм ищет
@junior_analyst
@junior_analyst Год назад
А где применение tqdm 😄
@28lucky16
@28lucky16 2 года назад
А сколько Алеся питон изучает?Вот просто интересно
@istories_workshop
@istories_workshop 2 года назад
Алеся учила Python в магистратуре ВШЭ три модуля. А потом самообразование - читала, смотрела, гуглила. ДАННОЕ СООБЩЕНИЕ (МАТЕРИАЛ) СОЗДАНО И (ИЛИ) РАСПРОСТРАНЕНО ИНОСТРАННЫМ СРЕДСТВОМ МАССОВОЙ ИНФОРМАЦИИ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА, И (ИЛИ) РОССИЙСКИМ ЮРИДИЧЕСКИМ ЛИЦОМ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА
@day_tradingnew
@day_tradingnew Год назад
Ошибка на 17 строке "input_tab" is not defined
@user-eo5zs1os8g
@user-eo5zs1os8g Год назад
спасибо, единственный ресурс, где я поняла наконец-то
@floki_spb
@floki_spb Год назад
Всё идеально, но от селениума ушли на суп и в итоге вывод был из супа. А как выводить из селениума данные, не понятно
@dhhshshsh6453
@dhhshshsh6453 Год назад
Дальше 3-й минуты работа не идет. Получаю ошибку Message: unknown error: cannot find Chrome binary. Как устранить? За час активного гугления ошибку не удалось исправить
@user-cn4dt7tk4i
@user-cn4dt7tk4i 2 года назад
Это уроки на Python3?
@istories_workshop
@istories_workshop 2 года назад
Здравствуйте, да. ДАННОЕ СООБЩЕНИЕ (МАТЕРИАЛ) СОЗДАНО И (ИЛИ) РАСПРОСТРАНЕНО ИНОСТРАННЫМ СРЕДСТВОМ МАССОВОЙ ИНФОРМАЦИИ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА, И (ИЛИ) РОССИЙСКИМ ЮРИДИЧЕСКИМ ЛИЦОМ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА
@Denmark1150
@Denmark1150 2 года назад
Удобную кнопку, которая переносит нас на следующую страницу убрали. Как мы можем осуществить переход на следующую страницу с помощью селениума? Пытался осуществить это с помощью xpatn последующей кнопки страницы (после копирования xpath я вижу, что там указывается номер последуюзей страницы и, по идее, мы могли бы просто указать вместо номера страницы наш {p} через f строки, но в этой строке xpath так же и указывается предыдущий и последующий номера страниц. Реализовать, к сожалению, не получилось)
@Denmark1150
@Denmark1150 2 года назад
Отбой, додумался через css селектор. Но этот подход работает только до того момента, как мы доходим до кнопки с многоточием. Нужно явно указывать номер страницы в URL адресе
@Denmark1150
@Denmark1150 2 года назад
Вот так вот работает уже до 8 страницы, а дальше уже алгоритм сбора информации по name и link видимо изменяется. Дальше мне лень ковыяться) if p < 5: browser.find_element_by_css_selector(f'body > div.main > ui-view > ui-view-ng-upgrade > ui-view > app-registry > div.results > div > div:nth-child(3) > div > div.b-controls__left_40.pagination_box1 > app-pagination > div > div > div:nth-child({p})').click() else: browser.find_element_by_css_selector(f'body > div.main > ui-view > ui-view-ng-upgrade > ui-view > app-registry > div.results > div > div:nth-child(3) > div > div.b-controls__left_40.pagination_box1 > app-pagination > div > div > div:nth-child(5)').click()
@istories_workshop
@istories_workshop 2 года назад
Супер! Спасибо, что поделились)
@artsirenko7076
@artsirenko7076 2 года назад
А вот я хочу сделать сканер онкологических диспансеров с интерфейсом для андроид. Какой драйвер мне использовать?
@n3tium
@n3tium Год назад
так это уже надо клиент-сервер делать. где селениум будет крутиться на сервере. а ведроид только получать результат
@user-yi8kh8bv1h
@user-yi8kh8bv1h 2 года назад
Здравствуйте. Есть тег:
@user-nx1ld8xh5e
@user-nx1ld8xh5e Месяц назад
ByTag используй
@MoTuJIb87
@MoTuJIb87 2 года назад
А как же понять какая библиотека для сайта нужна?
@user-cv5mp8su3r
@user-cv5mp8su3r Год назад
у меня в настройках 106 версия и на сайте тоже есть 106... вот только какая моя, если у меня 7 windows
@elnursh
@elnursh 2 года назад
возможно ли парсить в фоновом режиме?
@istories_workshop
@istories_workshop 2 года назад
Можно поверх окна открыть свой браузер и делать дела. А можно использовать PhontonJs, но не все сайты можно парсить через него. ДАННОЕ СООБЩЕНИЕ (МАТЕРИАЛ) СОЗДАНО И (ИЛИ) РАСПРОСТРАНЕНО ИНОСТРАННЫМ СРЕДСТВОМ МАССОВОЙ ИНФОРМАЦИИ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА, И (ИЛИ) РОССИЙСКИМ ЮРИДИЧЕСКИМ ЛИЦОМ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА
@user-nx7cq1wy3f
@user-nx7cq1wy3f 2 года назад
Добавляешь в опции параметр “headles” и работает в фоновом режиме. Синтаксис погугли сам, тут лень писать
@f4ke543
@f4ke543 Год назад
@@user-nx7cq1wy3f привет, вопрос хочу задать, вот у меня есть сайт с товарами который нужно спарсить, и у каждого товара есть своя страница, вот если мне нужны отдельные некоторые товары, то мне нужно копировать ссылку на товар и к ней писать код для сбора данных? и так для всех товаров которые я хочу спарсить, код же получится достаточно длинным. а также как мне нужен парсер который будет собирать данные 24/7 каждых 2-3 секунды, как это все организовать? если знаешь то отпиши
@user-nx7cq1wy3f
@user-nx7cq1wy3f Год назад
@@f4ke543 привет. Дай сайт и тз попробую
@alexeymendrin
@alexeymendrin 2 года назад
tqdm остался не у дел :)
@istories_workshop
@istories_workshop 2 года назад
Действительно! Забыли про него, но можете использовать его для циклов, чтобы увидеть прогресс-бар. ДАННОЕ СООБЩЕНИЕ (МАТЕРИАЛ) СОЗДАНО И (ИЛИ) РАСПРОСТРАНЕНО ИНОСТРАННЫМ СРЕДСТВОМ МАССОВОЙ ИНФОРМАЦИИ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА, И (ИЛИ) РОССИЙСКИМ ЮРИДИЧЕСКИМ ЛИЦОМ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА
@alexeymendrin
@alexeymendrin 2 года назад
@@istories_workshop спасибо! даже знать о нужной библиотеке уже полезно :)
@uvencosuper3471
@uvencosuper3471 2 года назад
Я не понял, зачем селениум в парсинге. Т.е. что может селениюм, чего бы нельзя было сделать с помощью реквестс? Если очень вдумчиво посидеть над разведкой, всегда можно организовать парсинг без селениума ИМХО. Селениум для тестинга, меня дико коробит, когда нет времени и я что то пилю на селениуме (естественно скрывая браузер), мне кажется, использование селениума в парсинге - это просто костыль для ленивых.
@istories_workshop
@istories_workshop 2 года назад
Селениум позволяет парсить, поэтому мы решили разобрать и эту библиотеку в рамках серии уроков про парсинг)) Возможно, кому-то понравится работать именно с ним. На вкус и цвет парсеры разные)) ДАННОЕ СООБЩЕНИЕ (МАТЕРИАЛ) СОЗДАНО И (ИЛИ) РАСПРОСТРАНЕНО ИНОСТРАННЫМ СРЕДСТВОМ МАССОВОЙ ИНФОРМАЦИИ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА, И (ИЛИ) РОССИЙСКИМ ЮРИДИЧЕСКИМ ЛИЦОМ, ВЫПОЛНЯЮЩИМ ФУНКЦИИ ИНОСТРАННОГО АГЕНТА
@f4ke543
@f4ke543 Год назад
привет, вопрос хочу задать, вот у меня есть сайт с товарами который нужно спарсить, и у каждого товара есть своя страница, вот если мне нужны отдельные некоторые товары, то мне нужно копировать ссылку на товар и к ней писать код для сбора данных? и так для всех товаров которые я хочу спарсить, код же получится достаточно длинным. а также как мне нужен парсер который будет собирать данные 24/7 каждых 2-3 секунды, как это все организовать? если знаешь то отпиши
@uvencosuper3471
@uvencosuper3471 Год назад
@@f4ke543 1. цикл в цикле 2. бот на халявном Heroku
@f4ke543
@f4ke543 Год назад
@@uvencosuper3471 на счет хероку я понял, но можешь также просветить на счет еще одного, вот я пишу парсер который будет 24/7 парсить данные с динамического сайта и потом отправлять в тг бота написаного с помощью айограма , а он уже мне будет данные скидывать (в онлайн режиме, тоесть по мере поступление их на сайт, он сразу же будет мне данные скидывать) мне надо будет на хероку скрипт и парсера и бота загружать или только что то одно из этого? И также на счет цикла в цикле, если честно даже малейшего понятие не вижу как это может выглядеть (пишу парсер только для себя впервые). Если я просто возьму урл всех страниц товаров которые мне нужны и с помощью риквеста get. буду каждый раз обращаться к новой ссылке, и после этого прописывать код чтобы с товаров парсились определенные значение, и так каждый раз, такая схема имеет место быть? или же так не получится вовсе/будет долго/не правильно и тд, просвети пожалуйста!
@uvencosuper3471
@uvencosuper3471 Год назад
@@f4ke543 1. и парсера, и бота 2.внешний цикл парсит страницы сайта (пагинация), внутренний тут же на этой же итерации парсит "карточки" (карточка - блок нужных тебе данных) на этой странице. Это нормально. Долго, но нормально. Хочешь не долго - гугли асинхронный парсинг.
@Messir
@Messir 7 месяцев назад
Какой еще нахер "иностранный агент"?
@elnursh
@elnursh 2 года назад
как легко деплоить селениум на сервере?
@f4ke543
@f4ke543 Год назад
привет, вопрос хочу задать, вот у меня есть сайт с товарами который нужно спарсить, и у каждого товара есть своя страница, вот если мне нужны отдельные некоторые товары, то мне нужно копировать ссылку на товар и к ней писать код для сбора данных? и так для всех товаров которые я хочу спарсить, код же получится достаточно длинным. а также как мне нужен парсер который будет собирать данные 24/7 каждых 2-3 секунды, как это все организовать? если знаешь то отпиши
@linterrupt
@linterrupt 2 года назад
В конце цикл не до 10, а до 9 надо. Потому что нумерация начинается с 0
@UserUser-xz4fw
@UserUser-xz4fw Год назад
Выдает ошибку NameError: name 'Chrome' is not defined
@niteiped
@niteiped 9 месяцев назад
У меня вопрос, а можно использовать selenium в тихом режиме, тоесть чтоб он не открывал браузер?
Далее