Парсер на «Selenium»: 1 урок, установка Selenium
avatar
7 | (offline)
❤️‍🔥Notehunter Developer
Добавлено:
Категория: Уроки «Selenium»
Комментариев: 0

С помощью PyCharm создам папку проекта и виртуальное окружение. Вы же можете использовать любую другую среду разработки, например VSCode

Для тех кто не знает, как создавать виртуальное окружение и проект в PyCharm

В IDE PyCharm нажимаем File -> New Project

  1. Выбираем папку, где будет создан проект.
  2. Выбираем virtualenv
  3. Каталог для venv выберется автоматически, в зависимости от каталога где будет создан проект.
  4. Жмем кнопку Create (Создать)

Ожидаем создание виртуального окружения и получаем файл main.py. Содержимое файла main.py можно будет удалить.

Установка Selenium 

Заходим в Terminal и пишем команду: pip install selenium

Результат установки:

(venv) PS C:\Users\Razilator\Desktop\Courses\Selenium> pip install selenium
Collecting selenium
  Using cached selenium-4.5.0-py3-none-any.whl (995 kB)
Collecting certifi>=2021.10.8
  Using cached certifi-2022.9.24-py3-none-any.whl (161 kB)
Collecting urllib3[socks]~=1.26
  Using cached urllib3-1.26.12-py2.py3-none-any.whl (140 kB)
Collecting trio~=0.17
  Using cached trio-0.22.0-py3-none-any.whl (384 kB)
Collecting trio-websocket~=0.9
  Using cached trio_websocket-0.9.2-py3-none-any.whl (16 kB)
Collecting sniffio
  Using cached sniffio-1.3.0-py3-none-any.whl (10 kB)
Collecting exceptiongroup>=1.0.0rc9
  Using cached exceptiongroup-1.0.0rc9-py3-none-any.whl (12 kB)
Collecting attrs>=19.2.0
  Using cached attrs-22.1.0-py2.py3-none-any.whl (58 kB)
Collecting async-generator>=1.9
  Using cached async_generator-1.10-py3-none-any.whl (18 kB)
Collecting cffi>=1.14
  Using cached cffi-1.15.1-cp310-cp310-win_amd64.whl (179 kB)
Collecting outcome
  Using cached outcome-1.2.0-py2.py3-none-any.whl (9.7 kB)
Collecting idna
  Using cached idna-3.4-py3-none-any.whl (61 kB)
Collecting sortedcontainers
  Using cached sortedcontainers-2.4.0-py2.py3-none-any.whl (29 kB)
Collecting wsproto>=0.14
  Using cached wsproto-1.2.0-py3-none-any.whl (24 kB)
Collecting PySocks!=1.5.7,<2.0,>=1.5.6
  Using cached PySocks-1.7.1-py3-none-any.whl (16 kB)
Collecting pycparser
  Using cached pycparser-2.21-py2.py3-none-any.whl (118 kB)
Collecting h11<1,>=0.9.0
  Using cached h11-0.14.0-py3-none-any.whl (58 kB)
Installing collected packages: pycparser, attrs, sortedcontainers, sniffio, outcome, idna, h11, exceptiongroup, cffi, async-generator, wsproto, urllib3, trio, PySocks, trio-websocket, certifi, selenium
Successfully installed PySocks-1.7.1 async-generator-1.10 attrs-22.1.0 certifi-2022.9.24 cffi-1.15.1 exceptiongroup-1.0.0rc9 h11-0.14.0 idna-3.4 outcome-1.2.0 pycparser-2.21 selenium-4.5.0 sniffio-1.3.0 sortedcontainers-2.4.0 trio-0.22.0 trio-websocket-0.9.2 urllib3-1.26.12 wsproto-1.2.0
WARNING: You are using pip version 21.3.1; however, version 22.2.2 is available.
You should consider upgrading via the 'C:\Users\Razilator\Desktop\Courses\Selenium\venv\Scripts\python.exe -m pip install --upgrade pip' command.

Помимо Selenium установились необходимые для модуля зависимости. 

Далее, нам нужно определиться с браузером, который мы будем запускать для Selenium.

В моем случае, я буду использовать браузер Google Chrome.

На момент написания статьи (04.10.2022) версия моего браузера: 106.0.5249.91

Поэтому нам необходим chromedriver той же версии: взять его можно здесь, ориентируясь по версии вашего Google Chrome браузера. Главное, чтобы числа версии совпадали так 106.0.5249.xx, последние две могут не совпадать, это не критично. 

Так как мы будем работать с Selenium под Windows, то качаю я chromedriver_win32.zip. Скачал chromedriver версии: 106.0.5249.6.

В нашей папке проекта Selenium я создам папку driver, куда и разархивирую драйвер для работы с Selenium и браузером:

Получиться должно вот так:

 

А теперь приступим к работе с Selenium в нашем файле main.py

Я напишу следующий код запуска Selenium с переходом на мой сайт, с необходимыми импортами.

main.py

import time
from selenium.webdriver.chrome.service import Service
from selenium import webdriver
service = Service('C:\\Users\\Razilator\\Desktop\\Courses\\Selenium\\driver\\chromedriver.exe')
driver = webdriver.Chrome(service=service)
url = 'https://notehunter.net'
try:
    driver.get(url=url)
    time.sleep(5)
except Exception as ex:
    print(ex)
finally:
    driver.close()
    driver.quit()

Пояснение:

  • Импорты: time, webdriver, Service.
  • Time импортировал для того, чтобы при работе с кодом, при переходе на страницу браузер не закрывался мгновенно, а ждал 5 секунд.
  • Webdriver - это главный модуль иницализации Selenium.
  • Service - путь к нашему chromedriver.exe
  • Создаю две переменные, service - где путь к драйверу и driver для инициализации самого Selenium. В практике вместо driver может попадаться и browser
  • Создаю переменную url, где передаю ссылку на свой сайт.
  • Создаю конструкцию try/execept/finally, если с ней не знакомы, можете почитать данную статью
  • В try передаю запуск driver, в метод get() передаю нашу ссылку, которую необходимо открыть с помощью Selenium.
  • В except, в случае ошибки передаю название ошибки для вывода в терминал.
  • В finally передаю обязательное закрытие driver с помощью close(), quit() после выполнения кода, или даже когда код завершится ошибкой, чтобы процессы с Selenium не плодились в памяти и не засоряли ее.

 И давайте проверим работоспособность нашего Selenium, как он откроет мой сайт:

Сайт открылся без ошибок, а после 5 секунд, браузер закрылся с Process finished with exit code 0

Отлично, на этом урок запуска и установки Selenium закончен. В следующем урок рассмотрим некоторые опции для браузера с использованием Selenium.

Теги записи: Python, Selenium, Парсер,
Комментарии к статье 0
Комментариев нет
Форма добавления комментария (необходима регистрация)