javascriptpython-3.xmechanicalsoup

Can MechanicalSoup (python 3x) deal with javascript in a website?


I could successfully login and navigate through a website but when I inspected the logout button it is like javascript:__doPostBack('ctl00$lnkBtnLogout','') as link, follow_link() doesn't work on this (saying: no adapters)??? Can someone help me?


Solution

  • From https://github.com/MechanicalSoup/MechanicalSoup:

    A Python library for automating interaction with websites. MechanicalSoup automatically stores and sends cookies, follows redirects, and can follow links and submit forms. It doesn't do JavaScript.

    This gives you two options.

    Do the JavaScript yourself

    Read the JavaScript. Reverse engineer it. Reimplement it in Python. Figure out what data in the page is dynamic and needed for the algorithm. Extract that using MechanicalSoup and insert it into your reimplementation.

    Don't use MechanicalSoup

    Use something which does support JavaScript (such as Selenium or PhantomJS) instead.