Python request click button

Python request 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:

Читайте также:  Модуль easygui в питоне

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

Источник

How to click a button with requests (python)

This is the button on the site:,I have been trying to ‘click’ a button on a site with the requests module on a website, but I can’t get it working.,Clicking a button is not directly possible with the requests library. If you really need to click on something from your python code, you need a scriptable, possibly headless browser. ,As for clicking a button, you may need to find out the action behind the button. There might be a handler against an element Id.

This is the button on the site:

This is what I’ve been trying to do in Python:

urlattempt = 'https://www.roblox.com/NewLogin' values = rpost = requests.post(urlattempt, data=values) cookies = rpost.cookies values2 = rpost2 = requests.post('https://www.roblox.com/item.aspx?id='+price2, cookies=cookies, data=values2) 

Answer by Madison Roth

It is not straightforward to click on this thing using pythons requests library. You might have more luck trying to find out what happens inside myClick(). My guess would be that at some point, a POST request will be made to a HTTP endpoint. If you can figure this out, you can translate it into your python code.,I have this little website i want to fill in a form with the requests library. The problem is i cant get to the next site when filling the form data and hitting the button(Enter does not work)., Meeting was getting extended regularly: discussion turned to conflict ,Asking for help, clarification, or responding to other answers.

The important thing is I can’t do it via a clicking bot of some kind. This needs to be done so I can run in without graphics.

First three entries name, message, sign are the text areas and step is I think the button.

r = requests.get(url) r = requests.post(url, data=info) print(r.text) 

Answer by Naya Pham

It is not straightforward to click on this thing using pythons requests library. You might have more luck trying to find out what happens inside myClick(). My guess would be that at some point, a POST request will be made to a HTTP endpoint. If you can figure this out, you can translate it into your python code.,As you might see from the snipped you posted, clicking the button is triggering some JavaScript code, namely a method called myClick(). ,In such a situation when you need to forge scripted button’s request, it may be easier not to guess the logic of JS but instead perform a physical click and look into chrome devtools’ network sniffer which gives you a plain request made which, in turn, can be easily forged in Python,If that does not work, another option would be to use something like Selenium/PhantomJS, which give you the ability to have a real, headless and scriptable browser. Using such a tool, you can actually have it fill out forms and click buttons. You can have a look at this so answer, as it shows you how to use Selenium+PhantomJS from python.

As you might see from the snipped you posted, clicking the button is triggering some JavaScript code, namely a method called myClick() .

Answer by Adan Meadows

soup = BeautifulSoup(page.content, "html.parser") html = list(soup.children)[1] body = list(soup.children)[2] btn = body.find("button") print(btn)

Answer by Raya Proctor

This will click on the button and a popup will be shown. Output – , Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics. ,Selenium Python Introduction and Installation,Competititve Programming

# finding the button using ID button = driver.find_element_by_id(ID) # clicking on the button button.click()

Answer by Hana Robinson

The Requests experience you know and love, with magical parsing abilities.,You can also render JavaScript pages without Requests:,These classes are the main interface to requests-html:,cookies – (optional) Dict or CookieJar object to send with the Request.

$ pipenv install requests-html ✨?✨ 

Источник

Как с использованием 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 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

Источник

Оцените статью