26 сент. 2012 г.

Неплохие обертки для работы с WEB

Вся работа в сети строится по принципу вопрос/ответ. Что-то принимает, а что-то отвечает.

Так и пошло разделение на клиент/сервер. Клиент посылает свои данные и запрос, сервер в свою очередь обрабатывает все это и отдает что может. Это само собой реализуется через протоколы.

Python и сообщество предлагает отличные решения для работы с серверами, а именно: pycurl, urllib и httplib.

Pycurl и httplib - низкоуровневые библиотеки, в которых можно более тонко задавать маршруты и сообщения, при взаимодействии.

Urllib - предоставляет высокоуровневый доступ. Имея массу обработчиков, мы можем "как два пальца ..." обходить редиректы, обрабатывать куки, составлять понятные заголовки и ... При этом все делается почти без нашего участия и в 10 строк кода.


Но прогресс не стоит на месте и постоянно кто-то подхватывает идею и делает её более простой, понятной и практичной. Так и создаются обертки, для работы с другими библиотеками.

Я в свою очередь могу выделить 2 библиотеки: Grab(на базе pycurl) и ServiceAgent007(на базе urllib)

ServiceAgent007(ссылка на репозиторий) достаточно простое решение. Но в этом и прелесть, так как ничего лишнего. Код хорошо задокументирован и разобраться в нем можно за несколько минут.

Grab(ссылка на офф. сайт) - полноценный комбайн, с неплохой документацией. Который, благодаря поддержке lxml имеет громадный функционал, в особенности для сбора информации из ресурсов.

Конечно почти каждый программист может и сам под себя написать решения. Но смысл? Если и так есть множество изящных велосипедов. 

Обе библиотеки вы можете установить с помощью pip, так как они находится в списках официального репозитория Python.