Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Automatizing web browser form filling in Python

Question:

Hi. I am a beginner trying to learn Python, and for one of my first projects I want to write a script that will fill out a survey automatically for me. I am familiar with coding, and I have most of the code written to solve this problem. What I am struggling is to write a method that will hit button #1 in question #1, or that will push any given button. One way I've realized I can do this, is perhaps by writing a script to press tab-> up-> down-> tab-> up -> down in the order needed to answer all of the questions.

Here is an image of what the survey looks like (CSS was disable for clarity). http://i.imgur.com/Tn94KFA.jpg

What is one way to go about writing a method to push a radio button?


[Disclaimer]: I have checked out the following questions but they were of no use to me in my current situation:

  • fill out a webform that uses javascript with python (question was framed very strangely and was about Javascript forums, which I don't understand how it is relevant/ I didn't understand it, and nobody answered the question).
  • Script to take web survey for me (answers were only about Java, however something like this tool called HtmlUnit seems cool, if there were a comparable library in Python).
  • How to fill out form data on a website (question is about Java).
like image 358
Josh Desmond Avatar asked Mar 08 '15 21:03

Josh Desmond


1 Answers

There are Python libraries and tools for automatizing browser actions. StackOverflow.com is not a place to ask for an recommendation for such a tool and thus moderators will close this question (SO is usually asking a help for particular problem, not for broad help and tutoriing requests). However here are some starting points for you

  • Splinter - automate browser actions in Python

  • Mechanize - Python library for stateful programmatic web browsing

  • Selenium automizing framework Python bindings - using full installed browser

  • Headless web browsing listing - includes Python ones

  • Scrapy - web content scraping framework in Python

For installing Python packages please refer to official package installation tutorial.

like image 150
Mikko Ohtamaa Avatar answered Oct 23 '22 19:10

Mikko Ohtamaa