How to automate browsing using python?
I think the best solutions is the mix of requests and BeautifulSoup, I just wanted to update the question so it can be kept updated.
You can also take a look at mechanize. Its meant to handle "stateful programmatic web browsing" (as per their site).
selenium will do exactly what you want and it handles javascript