Добро пожаловать на сайт - wlux.net!
FAQ по форуму
1. Все сообщения до группы местный проходят модерацию от 1 минуты до 24 часа
2. Сообщения учитываются в следующих разделах: Читать
3.Что-бы скачать вложение нужно 2 сообщения.
4.Личные переписки не работают на форуме
5. Запрещено: Просить скрытый текст , спам, реклама, скам, ддос, кардинг и другая чернуха, нарушать любые законы РФ/СНГ = бан аккаунта
6. Внимание! Мы не удаляем аккаунты с форума! Будьте внимательны ДО регистрации! Как удалить аккаунт на форуме?!
5.Не понимаю, как и что тут работает у вас?!Как создавать темы, писать сообщения, как получать реакции. Почему не засчитывает сообщения. Все ответы здесь
Репутация:
pip install selenium
sudo apt-get install chromium-chromedriver
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
#Указываем путь к драйверу, если он не в PATH
driver = webdriver.Chrome()
#Открываем страницу Google
driver.get("https://www.google.com")
#Находим поле для ввода текста по его имени
search_box = driver.find_element("name", "q")
#Вводим запрос
search_box.send_keys("Selenium Python") search_box.send_keys(Keys.RETURN)
#Закрываем браузер
driver.quit()
from selenium import webdriver
driver = webdriver.Chrome()
#Открываем страницу
driver.get("https://www.example.com")
#Находим кнопку по её ID и кликаем по ней
button = driver.find_element("id", "submit_button") button.click()
driver.quit()
from selenium import webdriver
driver = webdriver.Chrome()
#Устанавливаем неявное ожидание на 10 секунд
driver.implicitly_wait(10)
driver.get("https://www.example.com") search_box = driver.find_element("name", "q")
driver.quit()
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("https://www.example.com")
# Ожидаем, пока элемент не станет кликабельным (максимум 10 секунд)
element = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.ID, "submit_button")) ) element.click()
driver.quit()
from selenium import webdriver
driver = webdriver.Chrome() driver.get("https://www.example.com")
# Делаем скриншот и сохраняем его
driver.save_screenshot("screenshot.png")
driver.quit()
from selenium import webdriver
from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome()
driver.get("https://www.example.com")
# Находим выпадающий список по его ID
dropdown = Select(driver.find_element("id", "dropdown"))
# Выбираем опцию по видимому тексту
dropdown.select_by_visible_text("Option 1")
driver.quit()
Репутация:
Спасибо, очень полезно и информативноВсем привет
Это третья часть гайда по парсеру на пайтон.
Сегодня расскжу про селениум, т.к. именно использование драйвера браузера помогает обходить ещё больше блокировок.
Установка Selenium
Для начала работы с Selenium необходимо установить библиотеку. Используйте следующую команду:
Bash:pip install selenium
Также вам понадобится драйвер для выбранного браузера (например, ChromeDriver для Google Chrome). Для установки ChromeDriver на Ubuntu или MacOS можно воспользоваться командой:
Bash:sudo apt-get install chromium-chromedriver
Для Windows загрузите ChromeDriver с официального сайта и добавьте его в переменную окружения PATH.
Простой пример использования Selenium
Допустим, вы хотите автоматизировать открытие страницы Google и ввод поискового запроса. Пример кода:
Python:from selenium import webdriver from selenium.webdriver.common.keys import Keys #Указываем путь к драйверу, если он не в PATH driver = webdriver.Chrome() #Открываем страницу Google driver.get("https://www.google.com") #Находим поле для ввода текста по его имени search_box = driver.find_element("name", "q") #Вводим запрос search_box.send_keys("Selenium Python") search_box.send_keys(Keys.RETURN) #Закрываем браузер driver.quit()
В этом примере мы:
Открыли браузер и перешли на сайт Google.
Нашли элемент поля ввода по его атрибуту name="q".
Ввели текст в поле и отправили запрос.
Закрыли браузер.
Управление элементами на странице
Selenium предоставляет широкий набор методов для взаимодействия с элементами веб-страницы, такими как кнопки, чекбоксы, выпадающие списки и т.д. Например, чтобы кликнуть по кнопке:
Python:from selenium import webdriver driver = webdriver.Chrome() #Открываем страницу driver.get("https://www.example.com") #Находим кнопку по её ID и кликаем по ней button = driver.find_element("id", "submit_button") button.click() driver.quit()
Ожидание загрузки элементов
Иногда необходимо подождать, пока элемент появится на странице, например, при динамической подгрузке данных. Selenium поддерживает явные и неявные ожидания.
Неявные ожидания
Неявные ожидания позволяют Selenium подождать заданное количество времени перед тем, как выбросить исключение при отсутствии элемента:
Python:from selenium import webdriver driver = webdriver.Chrome() #Устанавливаем неявное ожидание на 10 секунд driver.implicitly_wait(10) driver.get("https://www.example.com") search_box = driver.find_element("name", "q") driver.quit()
Явные ожидания
Явные ожидания позволяют ожидать конкретного условия, например, когда элемент станет кликабельным:
Python:from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() driver.get("https://www.example.com") # Ожидаем, пока элемент не станет кликабельным (максимум 10 секунд) element = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.ID, "submit_button")) ) element.click() driver.quit()
Скриншоты страницы
Selenium также позволяет делать скриншоты страницы, что полезно для тестирования:
Python:from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.example.com") # Делаем скриншот и сохраняем его driver.save_screenshot("screenshot.png") driver.quit()
Работа с выпадающими списками
Для работы с выпадающими списками можно использовать класс Select. Пример:
Эти методы помогут вам обойти "активную" защиты от роботов, такую как проверка js скриптовPython:from selenium import webdriver from selenium.webdriver.support.ui import Select driver = webdriver.Chrome() driver.get("https://www.example.com") # Находим выпадающий список по его ID dropdown = Select(driver.find_element("id", "dropdown")) # Выбираем опцию по видимому тексту dropdown.select_by_visible_text("Option 1") driver.quit()
Репутация:
Что подразумеваете под большей конфиденциальностью?Базированный гайд по selenium, для большей конфиденциальности можно заменить chromedriver на geckodriver и накачать расширений типа uBlock
Репутация:
Если драйвер одновременно используется для парсинга разных сайтов или сайтов с обилием рекламных метрик, притом требуется оставлять как можно меньше информации о себе, то неплохо бы подключать различные "конфиденциальные" расширения Firefox, например, uBlock, Canvas Defender или Switch UserAgent. Более того, почти никто не пользуется браузерами без расширений, их наличие в парсере — дополнение робота, и так великолепно имитирующего поведение человека в интернете, до состояния, почти неотличимого от человеческогоЧто подразумеваете под большей конфиденциальностью?
Лучший вариант - использовать прокси/впн
А так у вас никакие данные ниоткуда не подтянутся, драйвер же открывается сессионно
Или это не так работает?
Репутация:
Репутация:
да, обходит, это же селениумкто смотрел, напишите, пожалуйста, рассмотрен ли в гайде обход cloudflare
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?