«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Пример динамического парсинга веб-страниц Python: применение селена и веб-драйвера

Пример динамического парсинга веб-страниц Python: применение селена и веб-драйвера

Опубликовано 2 сентября 2024 г.
Просматривать:490

Python dynamic web scraping example: application of selenium and webdriver

Динамический парсинг веб-страниц обычно использует некоторые библиотеки Python, такие как запросы для обработки HTTP-запросов, selenium для имитации поведения браузера или pyppeteer. Следующая статья будет посвящена использованию селена.

Краткое введение в селен

selenium — это инструмент для тестирования веб-приложений, но он также часто используется для очистки веб-страниц, особенно когда необходимо удалить веб-контент, динамически генерируемый JavaScript. selenium может имитировать поведение пользователя в браузере, например нажатие, ввод текста и получение элементов веб-страницы.

Пример динамического парсинга веб-страниц Python

Во-первых, убедитесь, что у вас установлен селен. Если нет, вы можете установить его через pip:

pip install selenium

Вам также необходимо скачать WebDriver для соответствующего браузера. «Предполагая, что мы используем браузер Chrome», вам необходимо загрузить ChromeDriver и убедиться, что его путь добавлен в переменные системной среды, или вы можете указать его путь непосредственно в коде. ‌

Вот простой пример получения заголовка веб-страницы:‌

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Setting up webdriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()

Этот скрипт откроет сайт example.com, получит его заголовок и распечатает его. ‌

Обратите внимание, что ‌webdriver_manager — это сторонняя библиотека, которая автоматически управляет версиями WebDriver. ‌Если вы не хотите его использовать, вы также можете вручную загрузить WebDriver и указать путь. ‌

Динамические веб-страницы могут включать контент, отображаемый с помощью JavaScript. ‌selenium может дождаться загрузки этих элементов перед работой, что очень удобно для обработки таких веб-страниц. ‌

Установите прокси при очистке динамических веб-страниц в Python

При использовании Python для сканирования динамических веб-страниц вы часто используете прокси. Использование прокси позволяет избежать многих препятствий с одной стороны и повышает эффективность работы с другой.

Установку селена мы представили выше. Кроме того, вам также необходимо скачать WebDriver соответствующего браузера и убедиться, что его путь добавлен в переменные среды системы, или вы можете указать его путь непосредственно в коде.
После выполнения вышеуказанных шагов мы можем настроить прокси и удалить динамические веб-страницы:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# Set Chrome options
chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://your_proxy_ip:port')

# Specify the WebDriver path (if you have added the WebDriver path to the system environment variables, you can skip this step)
# driver_path = 'path/to/your/chromedriver'
# driver = webdriver.Chrome(executable_path=driver_path, options=chrome_options)

# If WebDriver path is not specified, the default path is used (make sure you have added WebDriver to your system environment variables)
driver = webdriver.Chrome(options=chrome_options)

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()

В этом примере ‌--proxy-server=http://your_proxy_ip:port — это параметр для настройки прокси-сервера.‌ Вам необходимо заменить your_proxy_ip и порт на IP-адрес и номер порта прокси-сервера, который вы фактически используете. использовать

Если ваш прокси-сервер требует аутентификации, вы можете использовать следующий формат:‌

chrome_options.add_argument('--proxy-server=http://username:password@your_proxy_ip:port')

Где имя пользователя и пароль — имя пользователя и пароль вашего прокси-сервера. ‌

После запуска приведенного выше кода ‌selenium получит доступ к целевой веб-странице через настроенный прокси-сервер‌ и распечатает заголовок веб-страницы. ‌
Как указать путь к ChromeDriver?
ChromeDriver является частью Selenium WebDriver. Он взаимодействует с браузером Chrome через API WebDriver для реализации таких функций, как автоматическое тестирование и веб-сканеры. ‌
Указание пути к ChromeDriver в основном включает настройку переменных среды. ‌Вот конкретные шаги: ‌
1. Найдите место установки Chrome
Найти его можно, щелкнув правой кнопкой мыши ярлык Google Chrome на рабочем столе и выбрав «Открыть местоположение файла». ‌
2. Добавьте путь установки Chrome в переменную системной среды Path
Это позволяет системе распознавать ChromeDriver в любом месте. ‌
3. Загрузите и разархивируйте ChromeDriver
Обязательно загрузите ChromeDriver, соответствующий версии браузера Chrome, и разархивируйте его в программу exe. ‌
4. Скопируйте exe-файл ChromeDriver в путь установки Chrome
Таким образом, когда вам нужно использовать ChromeDriver, система может автоматически распознать и вызвать его

Выше описано применение селена и веб-драйвера при динамическом сканировании веб-страниц Python и способы его избежать при сканировании веб-страниц. Конечно, вы также можете попрактиковаться в реальных операциях на приведенных выше примерах.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/lewis_kerr_2d0d4c5b886b02/python-dynamic-web-scraping-example-application-of-selenium-and-webdriver-3330?1 Если есть какие-либо нарушения, свяжитесь с Study_golang@163. .com, чтобы удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3