Как перемещаться по сайту и извлекать данные с помощью Python
Я не очень программист. Только учится. Я хочу извлечь (публичные) данные о выборах из избирательного органа моей страны, используя Python. Это для академических целей, но я также хочу развить свои навыки программирования. Разумеется, все данные, которые я храню, будут опубликованы.
Мне нужно знать, какие модули Python позволяют мне заходить на веб-сайты и читать HTML, чтобы распознать определенные данные, которые мне нужно собрать. Я просто надеюсь на некоторые рекомендации о том, как или какие-либо дополнительные предложения у кого-либо.
Я хотел бы извлечь голоса для каждой партии, и дополнительные данные представлены полностью дезагрегированными: штат / муниципалитет / округ / центр / таблица. Наконец, я надеюсь сохранить его в формате CSV или XLSX (думаю, я бы использовал openpyxl
или же xlsxwriter
).
Моя идея состоит в том, чтобы сделать программу, которая:
1) принимает ссылку на вход ( например);
2) Он определяет ссылки для каждого государства слева от HTML (Amazonas, Anzoategui и т. Д.);
3) Для цикла, хотя каждое состояние и находит URL (это HTML, поэтому я думаю, что он будет искать и извлекать <a>
тег, верно?) для каждого государства;
4) Повторяется с муниципалитетами;
4) Повторяется с "Parroquia" (графство);
5) Повторяется для каждого избирательного центра;
6) Наконец, для каждой таблицы голосования в каждом центре (1, 2, 3... что угодно);
7) Затем он сохраняет результат для каждой партии ( например, вручную я нажимал имя каждого кандидата, распознавал ЛОГОТИП партии и сохранял ее голоса (в примере 30)). И это также должно хранить данные из "технической таблицы" в конце.
Конечным результатом должно быть сохранение всех данных: штат, муниципалитет, округ, центр, таблица и результат для каждой стороны.
1 ответ
Следующее поможет:
from selenium import webdriver - для настройки нового веб-драйвера для перехода на веб-сайты. (Тот, что для Chrome работает довольно хорошо)
from selenium.webdriver.common.by import By - для выбора HTML-элементов с помощью селектора CSS, имени тега, идентификатора и т. д.
from selenium.webdriver.support.ui import WebDriverWait - для настройки минимального времени загрузки URL-адреса для загрузки
from selenium.webdriver.support importpected_conditions as EC - для установки ожидаемых условий, которые необходимо выполнить при ожидании загрузки URL-адреса. Например, условие может ждать, пока все <a>
теги были загружены.
from selenium.webdriver.common.keys import Keys - для имитации нажатий клавиш или отправки текста в элемент HTML
из BeautifulSoup импорт BeautifulSoup - для анализа через загруженный документ HTML
import re - включить использование регулярных выражений
import xlwt - для записи в книги Microsoft Excel
from xlutils.copy import copy - для создания копий книг Microsoft Excel
время импорта - для настройки времени приостановки во время выполнения кода Python
import xlrd - для чтения из книг Microsoft Excel
Пакеты для скачивания:
XLRD 0,9,4
xlutils 1.7.1
XLWT 1.0.0
BeautifulSoup 4.4.1
селен 2.48.0
Большинство из вышеперечисленного можно скачать из индекса пакета Python