Веб-скрапинг динамического контента с Selenium и Python
Здравствуйте. В сегодняшней статье мы рассмотрим, как парсить некоторые динамические сайты при помощи Python и библиотеки Selenium. Многие современные сайты генерируют контент динамически или же имеют значения изменяющиеся в зависимости от условий. Парсинг подобных сайтов с помощью библиотеки bs4 может вызвать множестов проблем. Один из подходов заключается в том, чтобы имитировать взаимодействие пользователя на веб-сайте, прежде чем использовать bs4 для анализа интересующих вас элементов.
Ниже приведен рабочий пример получения динамического контента с помощью Selenium. Он предназначен только для иллюстративных целей.
from bs4 import BeautifulSoup
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
import lxml
import time
link = r’https://www.cryptocompare.com/’
browser = webdriver.Chrome()
browser.get(link)
WebDriverWait(browser, 10).until(EC.presence_of_element_located(
(By.CLASS_NAME, «panel-body»)))
crypt_elements = browser.find_element(By.CLASS_NAME, ‘table-coins’)
prices_html = BeautifulSoup(crypt_elements.get_attribute(
‘innerHTML’), features=’lxml’).prettify()
# Затем вы можете разобрать price_html
# Вывод результата
print(prices_html)
# Запишем разметку в html файл
with open(«coins.html»,»w») as f:
print(prices_html, file=f)
# Базовый try catch для проверки ошибок.
except Exception as e:
print(e)
time.sleep(2)
# закрываем браузер после всех манипуляций
browser.quit()
Здесь .get_attribute(‘innerHTML’) используется для получения HTML выбранного элемента. Идея состоит в том, чтобы дождаться загрузки элементов браузером, найти интересующие вас элементы, а затем разобрать их через bs4 для получения окончательного результата.
Приведенный выше код извлекает цены один раз. Чтобы непрерывно получать цены, вы можете передать их через рекурсивный цикл.
Таким образом, мы попытались обработать динамический контент при помощи Selenium и bs4.

![]()
Создано 31.01.2023 12:32:37
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2024 Русаков Михаил Юрьевич. Все права защищены.
Как парсить динамический контент на сайте

Есть некий контент на странице:
Это размеры одежды которые есть и те которых не осталось

Чем нужно парсить страницу чтобы получить точные данные Вот ссылка на пример страницы Вот HTML код с страницы:
И пожалуйста будьте добры укажите если я плохо задал вопрос. Я уверен что написал плохой вопрос и прошу прощение за это
Отслеживать
задан 23 мар 2023 в 16:16
9 4 4 бронзовых знака
playwright, selenium
24 мар 2023 в 6:23
Вы знаете другой способ подгрузки javascript? Ваш ответ не подходит под задачу мне нужно в бота вшить парсер @nexoma
24 мар 2023 в 15:45
причем здесь подгрузка яваскрипт? вам следует получить html-документ, распарсить его для получения требуемых html-элементов. если документ формируется динамически, то лучше это сделать через selenium. если документ статический то достаточно, например, requests. получить элементы можно как через xpath, так и с помощью css-selectors. вот ссылочки для начального знакомства dev-gang.ru/article/… habr.com/ru/post/250975 selenium-python.readthedocs.io/index.html по playwright найдёте сами.
Парсинг динамического сайта на python?
Имеется сайт: https://www.ifema.es/en/fitur/exhibitors-catalogue
При скролле грида данные автоматически подгружаются. Их необходимо спарсить.
В F12 -> Network, отправляется POST запрос с https://api.swapcard.com/graphql
Как взаимодействовать с такой штукой и можно ли сформировать запрос на подгрузку всех данных в табличке?
выручайте :
- Вопрос задан более двух лет назад
- 889 просмотров
Комментировать
Решения вопроса 1

soremix @SoreMix Куратор тега Python
Обычные graphql запросы. viewId всегда одинаковый судя по всему
endCursor возвращается при каждом запросе
import requests data = []>,"extensions":>>] response = requests.post('https://api.swapcard.com/graphql', json=data).json() # парсим нужные данные тут end_cursor = response[0]['data']['view']['exhibitors']['pageInfo'].get('endCursor') while end_cursor: data = [],"endCursor":end_cursor>,"extensions":>>] response = requests.post('https://api.swapcard.com/graphql', json=data).json() # тут парсим нужные данные end_cursor = response[0]['data']['view']['exhibitors']['pageInfo'].get('endCursor')
Ответ написан более двух лет назад
Нравится 2 1 комментарий
Продвинутый парсинг сайтов на Python
— наш телеграм канал для Python разработчиков с лучшими примерами кода.
В этой статье мы обсудим некоторые продвинутые техники веб-скрейпинга с помощью Python. Эти методы помогут вам спарсить сложные веб-сайты и избежать таких распространенных проблем, как CAPTCHA и блокировка IP-адресов.
1.Парсинг динамических сайтов с JavaScript
Сегодня многие сайты используют JavaScript для динамической загрузки контента. Это может затруднить парсинг данных традиционными методами. Тем не менее, существует ряд инструментов, которые могут помочь вам спарсить сайты, использующие JavaScript.
Одним из популярных инструментов является Selenium: https://selenium-python.readthedocs.io/. Selenium – это библиотека Python, которая позволяет управлять веб-браузером из кода. Это означает, что вы можете использовать Selenium для имитации поведения человека в браузере, что может помочь вам скреативить сайты, перегруженные JavaScript.
Вот пример того, как использовать Selenium для сканирования веб-сайта, перегруженного JavaScript: