selenium на Python за 25 минут: автоматизированная выгрузка FinAM
HTML-код
- Опубликовано: 7 июн 2024
- 0:00 Содержание задачи: есть таблица с 50-ю наименованиями фьючерсов Московской биржи. Требуется выгрузить с сайта finam.ru статистику дневной торговли этими фьючерсами.
1:35 Варианты решения: вручную (долго и чревато ошибками), посредством API веб-источника,
4:50 посредством пакета requests (у каждого инструмента собственный числовой идентификатор, который меняется каждый квартал и который надо отслеживать, что неудобно),
6:10 посредством пакета selenium (идеально).
6:50 Почему selenium - не первый, а последний способ в списке?
10:40 Календарь. Пакет datetime .
12:40 Константная и переменная части URL для requests
13:10 Активация selenium .
15:25 Важность «засыпания».
17:05 Поиск XPath в веб-инспекторе.
18:50 Прокрутка страницы вниз.
20:15 Цикл. Константная и переменная части URL для для selenium .
22:35 Конструкция try except для обработки ошибок.
Методы selenium: обратиться к URL (get), найти на странице элемент (find_element), кликнуть на него (click), скролить страницу (execute_script).
С момента публикации видео разработчики selenium в очередной раз внесли ряд изменений в его работу. Главные из них: selenium не работает в CoLab и запускается следующим кодом:
from selenium import webdriver
rom selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get(Интересующий Вас URL)
Причём *перед первым запуском selenium* следует
1) отсюда: chromedriver.chromium.org -- скачать chromedriver для Вашей операционной системы под актуальную версию браузера, назначенного на Вашем компьютере браузером по умолчанию
2) предварительно внести в PATH Windows (как на MacOS -- не знаю) путь к chromedriver.exe . Пример кода:
path = r"C:\Program Files\chromedriver-win64\chromedriver.exe"
sys.path.insert(0, path)
3) после исполнения этого кода удалите его или закоментьте
Итоговый скрипт в формате .pdf drive.google.com/file/d/1Iu8GfQTdw_Wq87oL-II6LqffIttDKN8h -- чтобы легче было свериться, но не копипастить. Главная задача итогового скрипта -- показать логику решения задачи без промежуточных шагов. *С момента записи видео в скрипт внесены непринципиальные изменения* относительно скрипта в самом видео (названия файлов Excel, пути к файлам и т.п.).
Файл datetime.xlsx docs.google.com/spreadsheets/d/1s8og9GIP0HMYra_5OAQk01frTov1ThGx
Файл datetime.xlsx docs.google.com/spreadsheets/d/1oIbwAxQQigxu3W75Qs78el7-Bp1bYy6l
Алексей, доброго времени суток, не могу с колаба запустить вебдрайвер подскажите как вы это делали
@@alexeykorchevnyy3109 здравствуйте! Для колаба требуется иной набор команд install и import . Попробуйте:
!pip install selenium
!apt-get update # to update ubuntu to correctly run apt install
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin
import sys
sys.path.insert(0,'/usr/lib/chromium-browser/chromedriver')
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
wd = webdriver.Chrome('chromedriver',options=chrome_options)
wd.get("www.webite-url.com")
@@user-ew8ne9ok7w получилось хотябы не т ошибок но браузер так и не открылся и страницу я не увидел, Алексей я вот схожий скрипт осколками видел на англоязычных ресурсах, и вы прям выжимку сделали, но это получается "рыбка" а я хочу "удочку" в плане разобраться сам подскажите ресурс где вот так грамотно вам про такой скрипт выше написали