I am working on a small project where I have to submit a form to a website.
The website is, however, using onclick
event to submit the form (using javascript).
How can the onclick
event be simulated in python?
Which modules can be used? I have heard about selenium
and mechanize
modules. But, which module can be used or in case of both, which one is better?
I am new to web scraping and automation.So,it would be very helpful.
Thanks in advance.
Ideally you don't even need to clicks buttons in these kind of cases.
All you need is to see at what webservice does the form sends request when clicked on submit button.
For that open your developer's control in the browser, Go to the Network tab and select 'preserve log'. Now submit the form manually and look for the first xhr GET/POST request sent. It would be POST request 90% of times.
Now when you select that request in the request parameters it would show the values that you entered while submitting the form. Bingo!!
Now all you need to do is mimic this request with relevant request headers and parameters in your python code using requests. And Wooshh!!
Hope it helps..
There is no silver bullet in simulating onclick
events on a web page. It is pretty much use-case specific, but here are some points and guidelines.
In general, there are two approaches:
requests
.selenium
which would fire up a real browser where you would find the specific element and click via .click()
method
mechanize
would not execute/trigger the onclick
function, because executing onclick
requires executing javascript which mechanize
cannot do.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With