В этой статье мы попрактикуемся и рассмотрим, как использовать Selenium для извлечения подзаголовков со страницы Wikipedia.
Работать наш парсер будет следующим образом:
1. Импорт необходимых библиотек:
Перед началом импортируем все необходимые библиотеки.
from selenium import webdriver
from selenium.webdriver.common.by import By
2. Определение URL:
Укажите URL страницы Wikipedia, которую вы хотите проанализировать.
URL = 'https://ru.wikipedia.org/wiki/Python'
3. Инициализация и запуск браузера:
Для этого используется WebDriver. Мы будем использовать ChromeDriver.
driver = webdriver.Chrome()
driver.get(URL)
4. Поиск подзаголовков:
В Wikipedia подзаголовки обычно находятся внутри тегов h2 и h3, но также могут быть другие уровни заголовков.
subheaders_h2 = driver.find_elements(By.CSS_SELECTOR, 'h2 .mw-headline')
subheaders_h3 = driver.find_elements(By.CSS_SELECTOR, 'h3 .mw-headline')
all_subheaders = subheaders_h2 + subheaders_h3
5. Извлечение текста из найденных элементов:
Преобразуем элементы в текст.
subheader_texts = [subheader.text for subheader in all_subheaders]
6. Завершение работы с браузером:
После того как мы собрали все данные, закроем браузер.
driver.quit()
7. Сохранение данных в файл:
Сохраняем подзаголовки в текстовый файл.
with open('subheaders.txt', 'w', encoding='utf-8') as file:
for subheader in subheader_texts:
file.write(subheader + '\n')
from selenium import webdriver
from selenium.webdriver.common.by import By
# Указываем URL страницы в Википедии
URL = 'https://ru.wikipedia.org/wiki/Python' # Пример
# Инициализируем веб-драйвер Chrome
driver = webdriver.Chrome()
# Открываем страницу по указанному URL
driver.get(URL)
# Находим все подзаголовки на странице Википедии.
# В Википедии подзаголовки часто находятся в тегах с тегами h2, h3 и так далее.
subheaders_h2 = driver.find_elements(By.CSS_SELECTOR, 'h2 .mw-headline')
subheaders_h3 = driver.find_elements(By.CSS_SELECTOR, 'h3 .mw-headline')
# Объединяем найденные подзаголовки
all_subheaders = subheaders_h2 + subheaders_h3
# Сохраняем текст каждого подзаголовка в список
subheader_texts = [subheader.text for subheader in all_subheaders]
# Закрываем браузер
driver.quit()
# Сохраняем подзаголовки в файл
with open('subheaders.txt', 'w', encoding='utf-8') as file:
for subheader in subheader_texts:
file.write(subheader + '\n')
print("Подзаголовки сохранены в 'subheaders.txt'")
Теперь у вас есть основные навыки для использования Selenium в целях парсинга. Этот метод может быть адаптирован для различных задач и простых сайтов.
Содержание: