Если вы столкнулись с этим на странице, которую хотите автоматизировать, у вас есть четыре варианта. Вот они, примерно в порядке простоты.
Выясните, что делает JavaScript, и эмулируйте его в своем коде Python: например, вручную добавив куки в ваш экземпляр CookieJar, вызвав методы в HTMLForms, вызвав urlopen и т. Д. См. Выше формы.
Используйте Java HtmlUnit или HttpUnit из Jython, так как они знают немного JavaScript.
Вместо использования механизации, вместо этого автоматизируйте браузер. Например, используйте MS Internet Explorer через свои интерфейсы автоматизации COM, используя расширения Python для Windows, также известные как pywin32, или win32all (например, простая функция, pamie; глава pywin32 из книги O’Reilly) или ctypes (пример). Подобные вещи могут также пригодиться в Windows для случаев, когда отсутствует API автоматизации. Для Firefox есть PyXPCOM.
Будьте честолюбивы и автоматически делегируйте работу соответствующему переводчику (например, интерпретатору JavaScript в Mozilla). Это то, что делают HtmlUnit и httpunit. Несколько лет назад я сделал резкий всплеск в этом направлении, но я думаю, что (все еще) было бы очень много работы, чтобы преуспеть.