Python requests click button

Как с использованием post запрос нажать на кнопку на сайте в python?

Мне надо нажать на кнопку на сайте. Я разобрался как это сделать с помощью selenium webdriver, но понял что мне это не подходит, слишком медленно работает.

Узнал что можно это сделать с помощью post запрос, но не смог найти достаточно конкретной информации.
В общех чертах нашел:

Чтобы сделать POST запрос, используйте функцию requests.post().

response = requests.post('http://example.com/', data={'key': 'value'})

Через аргумент data передаёте словарь с переменными, если они нужны. В переменной response оказывается объект ответ, у которого есть атрибут cookies, который содержит словарь с куками. Передать эти куки в следующем запросе можно с помощью параметра (вот ведь неожиданно!) cookies.

next_response = requests.post('http://example.com/', cookies=response.cookies)

Кнопка на которою нужно нажать:

button class="btn btn-lg btn-call" ng-click="vm.upQuery($event)"  ng-disabled="vm.isMarketClosed() || !vm.active" ng-mouseenter="vm.onCallOver()" type="button"> i class="n-icon n-icon-go-up size-30"> /i> /button>

Нажать кнопку ГУИ приложения с использованием Python
Есть некое приложение. Мне нужно с помощью Python нажать кнопку в программе Default DNS Буду.

Как нажать на кнопку на сайте?
День добрый. использую Python 2.7 и библиотеку Grab. никак не могу нажать кнопку на сайте. "Name" у.

Как нажать на кнопку на сайте?
я юзаю cURL я понимаю что посути надо вызвать функцию которую запускает кнопка? как найти эту.

Как нажать кнопку на сайте?
Ребята, срочно нужна помощь: как нажать кнопку на сайте? <a.

Как нажать кнопку на сайте
Вот кусок кода от кнопки: <div market_listing_action_buttons">.

чтобы понять что нужно сделать для отправки пост запроса) нужно открыть инструменты разработчика, с которыми вы уже знакомы, и перейти на вкладку «сеть» после этого надо кликнуть на кнопку и смотреть что там куда отправляется и вот тогда у вам все карты в руки)

Добавлено через 1 минуту
отправкой поста вы не кнопку нажимаете) а шлете данные на сервер которые должна была отправить кнопка по клику)
ЗЫ хотя это актуально для любого типа запросов)

Эксперт Python

А ещё проще установить анализатор трафика (wireshank или ему подобный) и увидеть post-запрос там, а потом подделать его питоном (конечно, только http).

Эксперт Python

Эксперт Python

Удобно отлаживать http-запросы в одном месте. Т.е. условно жмём кнопку в браузере — смотрим запрос. Запускаем скрипт — смотрим запрос, сразу видим отличия. Не важно кто послал пакеты: браузер или питоновский скрипт. Мощная фильтрация пакетов в wireshank.

Конечно, можно отладочную информацию получить в питоне, установив logging.DEBUG , но не видно заголовков (в том числе кук).

Как нажать на кнопку на сайте в selenium
Здравствуйте. В вк на сайте при регистрации, нужно указать пол.(всё равно какой) Но не получается.

Как нажать на сайте на кнопку без id?
здравствуйте, есть сайт https://toolber.ru/random-word-generator на нём есть кнопка"Генерировать.

Как нажать программно кнопку на сайте?
Добрый день. тема заюзанная, но внятных ответов не нашёл. имеется сайт Google-переводчик. нужно.

[cURL] как нажать кнопку на сайте?
я понимаю что посути надо вызвать функцию которую запускает кнопка? как найти эту функцию? я.

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

Источник

Python Request: как авторизоваться и нажать button «onclick»?

Добрый день, есть тут загвоздка по поводу авторизации. Есть сайт на ява и ajax авторизацией При входе в качестве логина устанавливается сертификат, requests справился с этим, а вот при вводе пароля не знаю как дать запрос на нажатие кнопки.

Что указать в словаре payload для нажатии кнопки вход ?(код html кнопки ниже.)

 === 
import requests cert =('cert','key') password = "qwerty123" auths = URL = "htтps://tender.sk.kz/OA_HTML/AppsLogin" s = requests.Session() r = s.get(URL, cert=cert, headers=headers, verify=False) auth_page = r.url r = s.post(auth_page, headers=headers, data=data)

KUPB0.png

Оценить 5 комментариев

atomheart

Ну у вас тут JavaScript на событии OnSubmit на кнопке. Это не вотчина Requests. Понятно, что все равно происходит запрос на сервер, но его сначала нужно отловить. Для этого нужно сниферить трафик (можно в хроме в инструментах разработчика), а именно отловить запрос(ы), отправляемые после нажатия кнопки. Потом уже реализовать аналогичную последовательность с помощью Requests.

Larvis

8e8e50ced6.png

Foo Bar: Вот такие параметры уходят, в создании запроса не силён особо.

atomheart

Сергей Ермолаев: Ну вот такой запрос значит вам и надо эмулировать. В доках к requests есть много примеров, ничего сложно там нет.

Larvis

Foo Bar: Разобрался, параметр ‘_FORM_SUBMIT_BUTTON’ постоянно меняется, где его requests`ом отследить можно?

atomheart

Скорее всего либо есть завязка на какой-то параметр (возможно, сессию), либо придется парсить html с формой и выуживать от туда нужное значение.

hprot

Для работы с фронтом используется selenium webdriver. Библиотекой requests вы только отправляете http запросы и она подходит для тестирования api и бека, но никак не фронта.

А вот в селениуме есть все необходимые плюшки для работы с xpath и селекторами. Вот пример кода:

from selenium import webdriver driver = webdriver.Chrome() driver.get('#URL') username = driver.find_element_by_css_selector("input#username") username.click() username.send_keys('#Login') password = driver.find_element_by_css_selector("input#password") password.click() password.send_keys('11111') submit = driver.find_element_by_css_selector("input#kc-login") submit.click() time.sleep(3) activate_btn = driver.find_element_by_xpath(activate_xpath)

Источник

Python requests click button

Subreddit for posting questions and asking for general advice about your python code.

[Solved] I was overcomplicating the use of the .get() function. It should look something like this:

sess = requests.Session() sess.get(«http://example.com») #replace URL with the page that blocks for content warning. This will establish cookies for this session on the website. desiredPage = sess.get(«http://example.com/desiredPage») #This URL will very much depend on how the website allows access to pages with content warnings. See description below for this usecase. desiredHTML = BeautifulSoup(desiredPage.text, ‘html.parser’) #The .text attribute of the request.Session() module returns the HTML of desiredPage

I posted previously about how I’m attempting to build a widget that displays the latest pages of a few webcomics in one place.

I’m having trouble with one particular comic that doesn’t have it’s own API for easy use in code.

When navigating to the latest page in a webbrowser, it first redirects you to a «content warning» page that requires you to click yes to get to the page with the actual image embedded in it.

I need to access that page in order to scrape the HTML for the link to the image itself.

The website uses a cookie called PHPSESSID to allow continued access to the pages after clicking «yes» on the content warning page. Without this cookie being saved or persisted, clicking «yes» simply takes you back to the same content warning page, instead of to the page with the image.

The problem I’m having is I can’t figure out how to essentially «click» the «yes» button in python and use the resulting URL it directs to. I’ve been trying to use the «session» part of the requests library to hold onto the cookies the site sets, however this doesn’t seem to accomplish the goal of actually letting the website know I intended to «click yes». Unless I can accomplish this, any attempt to access the HTML of the latest page only returns the HTML of the content warning page instead, which doesn’t have the link to the image I need.

This the relevant bit of code I have so far:

sess = requests.Session() sess.get(LatestCHLink) #LatestCHLink contains the URL to the first page that blocks for content warning, which is: http://starfightercomic.com/chapter_05_page.php requestLatestPG = sess.get(LatestCHLink, params=) #The URL returned from this request *is* actually the correct URL that shows when you are on the page that displays the image in a webbrowser. However when using this in «urlopen» it still only returns the HTML for the content warning page print requestLatestPG.url

I don’t have any experience with PHP and I’m trying to learn the requests library as I go along. Unfortunately, even after reading the documentation, I’m having trouble figuring out how to apply it to my case. Can anyone please point me in the right direction?

Источник

Python requests click button

i edited my orginal post after doing hard research

This is my first post in stack overflow. For my question i read this post request using python to asp.net page i found what i was looking for but some minor help needed

My question is i want to web scrape a website http://up-rera.in/ , by clicking inspect element websites throws to a different link which is this: http://upreraportal.cloudapp.net/View_projects.aspx

My query is how can i loop on all the drop down and click search to get the page content , for example select agra and click search and you will get page details

Since this is my learning phase so i am avoiding selenium as of now to get page details.

Is there any one that can guide me correctly and help me to amend my code which are mentioned below:

import requests from bs4 import BeautifulSoup import os import time import csv from lxml import html url = "http://upreraportal.cloudapp.net/View_projects.aspx" headers= formfields= #i dont know how to make payload resp = requests.post(url, data=formfields, headers=headers) data=resp.text #print(data) soup = BeautifulSoup(data,"html.parser") get_details = soup.find_all(id="ContentPlaceHolder1_GridView1") print(get_details)# whenever i run this code it prints empty list ## i dont know how to get details of each list from the dropdown

This code prints the Html page which i dont need, i need:

How can i print the data for individual districts like getting page details and how can i loop for all the districts to get the data of all districts and all pages data.

Источник

Python requests click button

Administrators

snippsat

(Apr-14-2018, 03:32 PM) ian Wrote: I need to click it to go next page. I prefer to use Requests or BeautifulSoup.

Not a job that suits these well.

If you need to interact with a web-page: click buttons, scroll etc — you need to use a tool that utilizes a real browser, like Selenium.
I more about this in Web-scraping part-2

Administrators

snippsat

(Apr-14-2018, 05:05 PM) ian Wrote: This button’s type is ‘submit’. I’m wondering if I can use requests.Session().Post

import requests headers = data = [email protected]"> response = requests.post('http://127.0.0.1:5000/email', headers=headers, data=data)

So this example i have run before,it will send data to a Flask and catch with email = request.form[’email’] on server.

I got to try Selenium. It asks for webdriver. I tried to install but hanging. I tried download webdriver for Edge, Ie, Firefox and Chrome all the same. I use Windows 10.

Administrators

snippsat

I don’t know what you mean bye hanging.

As first test,do this pip install -U selenium .

C:\1_py\scrape λ pip install -U selenium Collecting selenium Downloading selenium-3.11.0-py2.py3-none-any.whl (943kB) 100% |████████████████████████████████| 952kB 484kB/s Installing collected packages: selenium Found existing installation: selenium 3.9.0 Uninstalling selenium-3.9.0: Successfully uninstalled selenium-3.9.0 Successfully installed selenium-3.11.0
C:\scrape |-- get_doc.py |-- chromedriver.exe
# get_doc.py from selenium import webdriver import time browser = webdriver.Chrome() browser.get("http://www.python.org") time.sleep(5) doc = browser.find_elements_by_xpath('//*[@id="top"]/nav/ul/li[3]/a')[0] doc.click() time.sleep(5) browser.quit()
C:\1_py\scrape λ python get_doc.py

Источник

Читайте также:  Javascript что такое getelementbyid
Оцените статью