Пишу телеграмм бота который сможет скидывать пачки анекдотов сгенерированных нейросетью на сайте "https://randstuff.ru/joke/". Одну шутку достать с сайта получается легко. Но мне бы хотелось достать 10 анекдотов для использования в коде. На сайте есть кнопка "Сгенерировать", при нажатии на которую текст анекдота меняется. Подскажите пожалуйста, как мне автоматически нажимать эту кнопку?
Код:
import requests
from bs4 import BeautifulSoup as b
URL = 'https://randstuff.ru/joke/fav/'
r = requests.get(URL)
soup = b(r.text, 'html.parser')
anekdots = []
for i in range(10):
anekdot = soup.find_all('td')
anekdots.append(anekdot)
#здесь я и хочу добавить нажатие на кнопку "сгенерировать"
PS: я в таких делах ещё совсем совсем новичок, поэтому извините если это глупый вопрос. Заранее спасибо!
Дополнительно:
Содержание
А в пользовании интернетом вы тоже новичок?
по запросу "питон нажать кнопку на сайте" вам поисковики вообще ничего не находят?
или вы даже не пытались?
Это обязательно, см.п.3.8 Регламента.
Сюда же относится traceback, ввод и вывод в консоли и другая структурированная текстовая инфа.
Исправьте вопрос.
Ответы:
|
1 |
import requests s=requests.session() s.headers={"X-Requested-With": "XMLHttpRequest"} joke_text = s.post("https://randstuff.ru/joke/generate/").json()["joke"]["text"] print(joke_text) |
Через инструменты разработчика смотрите какой запрос отсылается на сервер и повторяйте
Там обычный POST на этот же адрес и внятный ответ в JSON
На сайте нет никакого антипарсинга, т. е. нет смысла заморачиваться с нажатием кнопки.
Просто сделайте с заголовком 'X-Requested-With': 'XMLHttpRequest
|
1 |
import http.client conn = http.client.HTTPSConnection("randstuff.ru") payload = '' headers = { 'X-Requested-With': 'XMLHttpRequest' } conn.request("POST", "/joke/generate/", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8")) |
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Для автоматизации действий на сайте, таких как нажатие кнопки, можно использовать технику парсинга веб-страниц. В этом случае мы можем использовать язык программирования PHP с помощью библиотеки cURL.
Прежде всего, нам необходимо загрузить страницу, на которой находится кнопка, которую мы хотим нажать. Для этого используем функцию cURL:
После того как мы загрузили страницу, нам нужно найти кнопку, которую мы хотим нажать. Для этого можно воспользоваться библиотекой PHP Simple HTML DOM Parser:
Теперь, когда у нас есть кнопка, мы можем смоделировать нажатие на нее, отправив POST-запрос на URL, который обрабатывает это действие. Для этого мы можем использовать функцию cURL:
Таким образом, мы можем автоматизировать нажатие кнопки на веб-странице с помощью PHP и парсинга. Убедитесь, что вы имеете право на использование парсинга веб-страниц и следите за правилами сайта, на котором вы выполняете действия.