Хорошо, поэтому мне нужно загрузить некоторые веб-страницы с помощью Python и быстро изучить мои варианты.
Входит в состав Python:
urllib - мне кажется, что вместо этого я должен использовать urllib2. urllib не поддерживает файлы cookie, только HTTP/FTP/локальные файлы (без SSL)
urllib2 - полный HTTP/FTP-клиент, поддерживает наиболее необходимые вещи, такие как куки, не поддерживает все HTTP-глаголы (только GET и POST, нет TRACE и т.д.)
Полнофункциональный:
mechanize - может использовать/сохранять файлы cookie Firefox/IE, предпринимать действия, подобные следующему второму каналу, активно поддерживать (0.2.5 выпущено в Март 2011 г.)
PycURL - поддерживает все завитки (FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE и LDAP), плохая новость: не обновляется с 9 сентября 2008 г. (7.19.0)
Новые возможности:
urllib3 - поддерживает повторное использование/объединение каналов и публикацию файлов
Устаревший (вместо a.k.a. используйте urllib/urllib2):
httplib - только HTTP/HTTPS (без FTP)
httplib2 - только HTTP/HTTPS (без FTP)
Первое, что меня поразило, это то, что urllib/urllib2/PycURL/mechanize - все довольно зрелые решения, которые хорошо работают. mechanize и PycURL поставляются с рядом дистрибутивов Linux (например, Fedora 13) и BSD, поэтому установка обычно не является проблемой (так что это хорошо).
urllib2 выглядит неплохо, но мне интересно, почему PycURL и механизация кажутся очень популярными, есть ли что-то, что мне не хватает (т.е. если я использую urllib2, я нарисую себя в углу в какой-то момент?). Мне бы очень хотелось получить отзывы о плюсах и минусах этих вещей, чтобы я мог сделать для себя лучший выбор.
Изменить: добавлена заметка о поддержке глагола в urllib2