LINUX.ORG.RU

Python: httplib, urllib2, urllib3, requests.

 


0

1

Мне больше нравится httplib из-за low-level контроля: можно легко контролировать порядок хидеров, например. Но либа не умеет автоматические редиректы и не умеет cookie. Хотя с модулем Cookie это восполнимо. Короче, в фанатском коде сижу на httplib, в промышленном юзаю requests. Пробовал юзать urllib2 - там всё как-то сильно защищено от программиста, нельзя просто так взять и установить любой «Content-Type», например. Какие-то абстракции городить надо трёхэтажные.

А может кто-нибудь рассказать, urllib2, urllib3 и requests внутри используют httplib или что-то своё?

Ответ на: комментарий от kiverattes

В квотезы.

Да, requests точно использует внутри себя urllib2/3.

Deleted ()
Ответ на: комментарий от kiverattes

Ну ок, вот держи:
https://github.com/kennethreitz/requests/blob/master/requests/adapters.py
Очевидное urllib3

https://github.com/shazow/urllib3/blob/master/urllib3/connectionpool.py
httplib/http/urllib

Разве это так сложно? У меня бы больше времени ушло на то, чтобы создать твой тред на лоре.

anonymous ()

в урллиб ... нельзя просто так взять и установить любой «Content-Type»

В объекте Request что угодно можно установить же вроде.

Kalashnikov ★★★ ()

Для простых случаев httplib, для сложных curl, если нужны кукисы, то это ИМХО индикатор того, что надо переходить на серьезный фреймворк для скрейпинга.

urllib всех версий - это какой-то кошмар.

provaton ★★★★★ ()
Ответ на: комментарий от provaton

Не, никакой серьёзный фреймворк не нужен. Я тут нагуглил стандартный модуль Cookie. Никаких серьёзных фреймворков не потребовалось. Заголовки «set-cookie» из ответа от сервера запихиваются в метод load() объекта BaseCookie и он прекрасно их парсит со всеми их атрибутами («path», «expires»...). BaseCookie есть словарь, который можно перебирать и сохранять в каком-нибудь json в 5 строчек. httplib - рулез!

kiverattes ★☆ ()
Последнее исправление: kiverattes (всего исправлений: 1)
Ответ на: комментарий от kiverattes

Всё же попробуйте как-нибудь, клёвый модуль, мощный и простой.

Pa ()

Видимо я чего-то не понимаю, но кто мешает работать с кукисами руками? Это же всего лишь один из заголовков.

Reset ★★★★★ ()
Ответ на: комментарий от Reset

Там формат не примитивный. Это не копипаста - нельзя принятое назад отправить. Надо там кое-что вырезать, кое-что от кое-чего отделить и т.п. Это надо париться.

kiverattes ★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.