Как нажать на кнопку на сайте python
Перейти к содержимому

Как нажать на кнопку на сайте python

  • автор:

Как нажать на кнопку на сайте через Python?

Есть сайт, на котором некоторые элементы страницы недоступны до нажатия на кнопку. Адрес при нажатии при этом не меняется, поэтому нельзя просто перейти на другую страницу. Как это сделать? Какие библиотеки нужны?

Отслеживать
задан 21 дек 2019 в 19:05
IceCube092 IceCube092
43 1 1 серебряный знак 8 8 бронзовых знаков
Нет баллов на коммент, поэтому так. Это должно помочь: stackoverflow.com/questions/27869225/…
21 дек 2019 в 19:13

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Для подобных целей есть selenium.

Вот небольшой пример авторизации в вк.

from time import sleep from selenium import webdriver VK_ROOT_URL = "https://vk.com/" class TestFunc(object): def __init__(self): self.driver = webdriver.Firefox() self.driver.get(VK_ROOT_URL) def login(self, username, password): email_field = self.driver.find_element_by_id("index_email") email_field.send_keys(username) sleep(5) password_field = self.driver.find_element_by_id("index_pass") password_field.send_keys(password) sleep(5) login_button = self.driver.find_element_by_id("index_login_button") login_button.click() if __name__ == __main__: username = 'username' password = 'password' TestFunc().login(username, password) 

Для марса у селенитам есть такая функция как get_attribute(«outerHTML»), которая возвращает HTML. В вашем распоряжении есть большая документация.

Нажатие кнопок на сайте без selenium

Здравствуйте, у меня такая проблема, хочу написать приложение которое будет нажимать кнопки на сайте и получать с сайта инфу.
https://m.p.finance/ru/cabinet. -high-low/ вот собственно ссылка с коей нужно работать, помогите пожалуйста грамотно написать код, что бы нажимать кнопки «выше», «ниже», «сумма» и смотреть изменение баланса

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как в lazarus передать программе нажатие кнопок без использования WinAPI?
Нужно передать программе нажатие кнопок на клаве, например Alt+Ctrl+Home.

Программное нажатие кнопки на сайте(без ID и Name)!
Всем Доброго Времени Суток. Код для нажатия кнопки по её ID: String if(.

Программное нажатие на кнопку в игре не отрабатывает. Имитировать нажатие кнопок геймпада xbox 360
Добрый день! Хочу написать простенького бота, который бы помогал мне совершать некоторые.

Нажатие на кнопку Selenium
Добрый день. Пытаюсь нажать на кнопку с помощью уникального класса, но элемент "couldn’t be.

Нажатие кнопки в Selenium
Есть код на странице кнопок: <td colspan="5"> <a.

Автоматизируй это!

Эксперт Python

7537 / 4554 / 1205
Регистрация: 30.03.2015
Сообщений: 13,116
Записей в блоге: 29

Cuburskuu, помочь то есть написать за тебя, а ты скопируешь? если нет то где твой код и вопросы?
ты в курсе же да, что у нас нет доступа в этот кабинет и мы не видим никаких кнопок?

Регистрация: 26.02.2022
Сообщений: 3

За меня писать конечно не надо, мне ведь и самому интересно,
import requests
from bs4 import BeautifulSoup
url = ‘https://m.p.finance/ru/cabinet/demo-quick-high-low/’
r = requests.get(url)
soup = BeautifulSoup(r.text, ‘lxml’)
print(soup)
Вот код, пока просто распарсил страничку, это страница без каких либо авторизацией, там
любой пользователь может увидеть эти кнопки.
А моя проблема в том, что я пишу с андроида и не могу использовать Селениум, то бишь мне надо
вытащить эти кнопки со страницы и как то с ними научиться взаимодействовать..
Если можете подскажите, как мне использовать селениум с андроида, или подскажите другие пути
для программного взаимодействия с html документами

Добавлено через 2 минуты
Ещё он перенаправляет походу на страницу авторизации и оттуда ещё надо кликнуть две кнопки, что бы проехать дальше

как сделать нажатие на кнопку js

Для имитации нажатия на кнопку в JavaScript можно использовать метод click() . Этот метод вызывает событие «click» на элементе, на который он был вызван.

 id="myButton">Нажми меня 
const button = document.getElementById('myButton'); // имитируем нажатие на кнопку button.click(); 

В этом примере мы получаем кнопку по ее id, а затем вызываем метод click() на этой кнопке. Это приведет к тому, что будет имитировано нажатие на кнопку.

Обратите внимание, что этот метод может вызвать обработчик события «click» на кнопке, но он не сработает, если кнопка заблокирована (например, атрибутом disabled ) или если обработчик события «click» был удален.

Важно сказать, что событие, вызванное методом click() , будет иметь те же свойства и методы, что и нативное событие ( target , currentTarget , preventDefault() , stopPropagation() ), но имеет некоторые ограничения. Например, может не сработать проверка на долгое нажатие.

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » Kak кликнуть кнопку на сайте?

#1 Март 2, 2016 23:12:51

newpy Зарегистрирован: 2014-08-12 Сообщения: 56 Репутация: 0 Профиль Отправить e-mail

Kak кликнуть кнопку на сайте?

Получилось скачать сайт.

import urllib.parse х = urllib.request.urlopen('https://yandex.ru/internet') y=x.read() print(y) 

Хотелось бы научиться кликать кнопки на сайте.

И попутно два вопроса:
1. Такой способ правильный? Может уже так не делают
2. Что за модуль urllib2?

#2 Март 2, 2016 23:57:48

ZerG Зарегистрирован: 2012-04-05 Сообщения: 2330 Репутация: 63 Профиль Отправить e-mail

Kak кликнуть кнопку на сайте?

Начните с того что вы скачали не сайт в вашем понимании а его HTML код и работаете с ним! Вы скачали текстовый файл вы можете сделать по нему поиск. замену и так далее. Для того что бы появилась кнопка в вашем понимании текстовый файл надо сохранить как веб файл и открыть браузером что бы он открыл его как веб страницу а не как текстовый документ

Влодение рускай арфаграфией — это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

#3 Март 3, 2016 01:37:14

py.user.next От: Зарегистрирован: 2010-04-29 Сообщения: 9596 Репутация: 836 Профиль Отправить e-mail

Kak кликнуть кнопку на сайте?

newpy
2. Что за модуль urllib2?

Во втором питоне urllib — это старый модуль, потом там стали делать новый и назвали его urllib2. И вот этот новый модуль включили в третий питон под названием urllib.
Есть ещё urllib3.

newpy
Хотелось бы научиться кликать кнопки на сайте.

Потренируйся на сайтах, где ещё остался http. Поставь Wireshark и смотри в нём, что посылается, когда кнопку нажимаешь.
Можешь ещё поставить в браузере Firebug, там тоже можно смотреть, что посылается.

Отредактировано py.user.next (Март 3, 2016 01:58:30)

#4 Март 3, 2016 15:05:27

newpy Зарегистрирован: 2014-08-12 Сообщения: 56 Репутация: 0 Профиль Отправить e-mail

Kak кликнуть кнопку на сайте?

ZerG
вы можете сделать по нему поиск. замену и так далее.

я вот эти и имел ввиду, что могу выбрать данные, которые мне “показывает” страница.. Например yandex.ru/internet выдает мой айпи, мой город.. Но что бы получить ещё кое-что (например скорость интернета) необходимо нажимать имеющуюся там же кнопку “тестирование скорости”. Теперь хотелось бы научиться нажимать на эту кнопку..
Правильно ли я понимаю, что нет никаких “нажатий” кнопок на сайте, а нужно отследить какая ссылка отправляется при нажатии на кнопку и таким же способом “скачать” этот сайт?

py.user.next
urllib2…включили в третий питон под названием urllib.

спасибо ценная информация. И похоже что действительно нет никаких “нажатий” мифических кнопок раз говоришь Wireshark, Firebug

Спасибо за отклики. Обоим поставил крестики

#5 Март 4, 2016 03:10:15

py.user.next От: Зарегистрирован: 2010-04-29 Сообщения: 9596 Репутация: 836 Профиль Отправить e-mail

Kak кликнуть кнопку на сайте?

newpy
И похоже что действительно нет никаких “нажатий” мифических кнопок

Нажатие на кнопку приводит к тому, что браузер формирует запрос в соответствии с протоколом HTTP (протокол передачи гипертекста). А то, как он его формирует, записывается в описании для кнопки на языке HTML (язык разметки гипертекста).
Сервер, который получает запрос, не знает, как тот был сформирован.

Отредактировано py.user.next (Март 4, 2016 03:13:27)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *