Каким образом можно осуществить нажатие на кнопку сайта при использовании метода парсинга данных?

Как автоматически нажать кнопку "Сгенерировать" на сайте "https://randstuff.ru/joke/" для получения 10 анекдотов и использования их в коде моего телеграм-бота, который генерирует анекдоты с помощью нейросетей?
  • 9 сентября 2023 г. 16:56
Ответы на вопрос 3
Для автоматического нажатия кнопки на сайте и получения результатов, вы можете использовать библиотеку Selenium в сочетании с веб-драйвером.

Вот пример кода на языке Python, который демонстрирует, как автоматически нажимать кнопку "Сгенерировать" на сайте "https://randstuff.ru/joke/" и получать 10 анекдотов:

```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

# Указываем путь к веб-драйверу Chrome
driver_path = '/путь/к/веб-драйверу/chromedriver'

# Создаем экземпляр веб-драйвера
driver = webdriver.Chrome(executable_path=driver_path)

# Переходим на сайт
driver.get("https://randstuff.ru/joke/")

# Ждем, пока кнопка "Сгенерировать" будет доступна
generate_button = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, "button")))
    
# Нажимаем на кнопку "Сгенерировать"
generate_button.click()

# Ждем, пока появится результат с 10 анекдотами
jokes = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CLASS_NAME, "jokeresult")))

# Парсим анекдоты из результатов
jokes_list = jokes.text.split('\n')[:10]

# Используем анекдоты в своем телеграм-боте

# Закрываем веб-драйвер
driver.quit()
```

Обратите внимание, что вы должны установить ChromeDriver и указать путь к нему в переменной `driver_path`. Вы также можете использовать другой веб-драйвер в зависимости от вашего предпочтения (например, FirefoxDriver для Firefox).

После парсинга анекдотов вы можете сохранить их в файл или использовать их напрямую в своем коде телеграм-бота для генерации анекдотов с помощью нейросетей.
Чтобы узнать, какой запрос отправляется на сервер, воспользуйтесь инструментами разработчика. Обратите внимание на запрос типа POST по тому же адресу и на получаемый ответ в формате JSON. 
 Анализируйте запросы и ответы, используя инструменты разработчика. При этом обратите внимание на тип запроса POST, который отправляется на тот же адрес, и получайте понятный ответ в JSON.
Похожие вопросы