среда, 6 мая 2009 г.

pylibcurl - обёртка ctypes для curl'a

привет, любители питона.
представляю вам обёртку ctypes для курла, теперь не нужно ставить pycurl :)

особенности:
  • более питонически стиль
  • работает из "коробки" не нужно ставитьт pycurl (нужна только библиотека libcurl)
  • работает со stackless'ом (возможна работа на greenlet'ах (не тестировал) c эмуляцией или без stackless'а)


пример:

from pylibcurl import Curl, const, lib, CurlError

header = []
c = Curl() # или все опции вставить в конструктор c = Curl('http://www.yandex.ru', followlocation=1, maxredirs=20, encoding='')
c.url = 'http://www.yandex.ru'
c.setopt(followlocation=1, maxredirs=20, encoding='')
c.httpheader = ['X-Client: 1', 'Bot: 1']
c.httpheader = ['X-Client: 2', 'Bot: 2']
c.useragent = 'Opera' # или таким образом устанавливаем опции
c.autoreferer = 1

cookie_file = 'cookie.txt'
c.cookiefile = cookie_file
c.cookiejar = cookie_file

c.writefunction = lambda x: x

c.headerfunction = header.append
c.verbose = 0
c.perform()
print c.effective_url # думаю смысл понятен



в планах написать больше тестов, отловить баги, написать документацию
жду ваши пожелания, замечания, критику приветствую :)
ах, да чуть не забыл ссылка на pylibcurl