Достаточно часто возникает необходимость воспроизвести из кода действия браузера, например, сохранение cookies, заполнение форм и т.д. Для таких тривиальных задач не хочется писать много кода, и в этом может помочь очень простой и удобный язык twill. Twill можно запускать как из командной строки, так и встраивать в программу на python. Второй вариант предоставляет большую гибкость, поэтому я рассмотрю подробнее его.

Установка

Для установки twill как python-библиотеки достаточно воспользоваться модулем easy_install: easy_install twill. После этого можно подключать twill в свой проект.



Пример использования

В качестве примера напишем программу, которая будет опубликовывать пост в Живом Журнале и сохранять cookies в файл:
from twill.commands import *
go("http://www.livejournal.ru/loginform")
fv("1", "user", "<Ваш логин>") #Команда заполнения формы. В качестве второго параметра может быть использован, как name, так и id элемента формы
fv("1", "password", "<Ваш пароль>")
submit()
go("http://www.livejournal.com/update.bml")
fv("4", "subject", "<Тема поста>")
fv("4", "draft", "<Собственно, пост>")
submit("42") #В качестве параметра передается номер элемента формы. Чтобы получить список всех форм с элементами и номерами, нужно использовать команду showforms()
save_cookies("cookies.txt")

Результат выполнения в командной строке:



Как видите, язык twill крайне прост, и обладает достаточным функционалом для решения типичных задач. Полный список команд можно посмотреть на официальной страничке.