Файлы к уроку:
Ссылки:
Описание
В этом уроке мы разберем следующие темы:
- Как автоматизировать браузер
- Как автоматически получать информацию с сайтов с Python Selenium
- Как автоматически скачивать файлы с Python Selenium
- Как автоматически получать информацию из ЕГРЮЛ
- Как автоматически скачивать выписки из ЕГРЮЛ
Для решения этих задач мы будем использовать Selenium — модуль Python. Этот модуль позволяет автоматизировать работу браузера. В данном уроке мы разберем его работу на примере браузера Mozilla Firefox.
Задачи, которые чаще всего решают с помощью Python Selenium:
- Открытие веб-страниц
- Получение текстового содержимого из определенных блоков веб-страниц
- Заполнение форм на веб-страницах
- Скачивание файлов
Мы познакомимся с модулем Selenium на примере сайта egrul.nalog.ru. Имея большой список ИНН мы получим информацию по каждому ИНН и запишем эту информацию в CSV файл. Также мы научимся скачивать PDF выписки из ЕГРЮЛ.
Решение
Получить данные с сайта ЕГРЮЛ
С помощью модулей Python мы откроем браузер, введем поисковой запрос и получим текст определенного элемента. Нам сначала нужно скачать драйвер для Firefox и положить его в нужно место. После этого мы готовы вводить код.
Сначала импортируем модули.
import os
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.keys import Keys #чтобы нажимать клавиши
import time #чтобы делать задержку
Запустим браузер и откроем нужную веб-страницу.
browser = webdriver.Firefox()
browser.get('https://egrul.nalog.ru/index.html')
Найдем форму для ввода запроса и введем в нее запрос.
inn_form = browser.find_element_by_id('query')
inn_form.send_keys('7728240240')
inn_form.send_keys(Keys.ENTER)
time.sleep(3)
Найдем элемент с результатом запроса и выведем на экран текст.
content = browser.find_elements_by_class_name('res-text')
for item in content:
print(item.text)
Скачать выписку ЕГРЮЛ
Сначала импортируем нужные модули.
import os
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import re
Сделаем настройки, которые позволят нам скачивать файлы без диалоговых окон.
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2);
fp.set_preference("browser.download.manager.showWhenStarting", False);
fp.set_preference("browser.download.dir", os.getcwd());
fp.set_preference("pdfjs.disabled", True);
fp.set_preference("plugin.scan.Acrobat", "99.0");
fp.set_preference("plugin.scan.plid.all", False);
fp.set_preference("browser.helperApps.alwaysAsk.force", False);
fp.set_preference("plugin.disable_full_page_plugin_for_types", "application/pdf")
fp.set_preference("pdfjs.disabled", True)
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf")
Откроем веб-страницу, введем поисковой запрос и скачаем появившийся PDF файл.
browser = webdriver.Firefox(firefox_profile=fp)
browser.get('https://egrul.nalog.ru/index.html')
inn_form = browser.find_element_by_id('query')
inn_form.send_keys('7728240240')
inn_form.send_keys(Keys.ENTER)
time.sleep(3)
find = browser.find_elements_by_tag_name('button')
find[2].click()
Курс Python Практический
Номер урока | Урок | Описание |
---|---|---|
1 | Python Практический. Скачиваем котировки | В этом уроке мы научимся скачивать котировки с помощью модуля pandas_datareader. |
2 | Python Практический. Объединить книги Excel | В этом уроке мы объединим много Excel файлов в один CSV файл с помощью Python |
3 | Python Практический. Объединить книги Excel | Дополним урок по объединению большого количества XLSX файлов в один CSV при помощи Python. Добавим Progress Bar и вывод времени начала обработки каждого файла. |
4 | Python Практический. Создать Progress Bar | В этом уроке мы научимся создавать Progress Bar в Python. Для этого воспользуемся модулем tqdm. |
5 | Python Практический. Объединить листы книги Excel | Объединим множество листов одной книги Excel по вертикали. |
6 | Python Практический. Объединить книги Excel и листы в них | Как объединить книги Excel и все листы в них в одну таблицу. |
7 | Python Практический. Объединить множество CSV | Объединим множество CSV файлов по вертикали в один CSV файл. |
8 | Python Практический. Таблицы из множества интернет-страниц | Извлечем таблицу из множества веб-страниц и объединим по вертикали. |
9 | Python Практический. Многостраничное извлечение таблиц с Requests и BS4 | В этом уроке мы с помощью Python модулей Requests и BS4 извлечем таблицу из множества web-страниц, потом все эти таблицы объединим по вертикали в одну и запишем результат в Excel файл. |
10 | Python Практический. Скрапинг/Парсинг сайтов с Selenium и BS4 | В этом уроке мы будем скрапить/парсить веб сайт с Python модулями Selenium и BF4. |
11 | Python Практический. Автоматизация браузера Python Selenium, Скрапинг, скачивание выписок ЕГРЮЛ | В этом уроке мы познакомимся с модулем Selenium для Python. Он позволяет автоматизировать работу браузера, например, открывать веб-страницы, заполнять формы, получать содержимое блоков и скачивать файлы. Мы изучим основы Selenium на примере получения данных ЕГРЮЛ по ИНН и автоматическому скачиванию выписок ЕГРЮЛ. |
12 | Python Практический. Множественная замена текста с Pandas | В этом уроке мы выполним множественную замена текста с помощью модуля Pandas |