Python urllib vs httplib?
Kiedy ktoś użyje httplib a kiedy urllib?
Jakie są różnice?
Myślę, że gotowy urllib używa httplib, planuję zrobić aplikację, która będzie musiała złożyć żądanie http i do tej pory używałem tylko httplib.HTTPConnection w Pythonie dla żądań, a czytając o urllib widzę, że mogę tego użyć również dla żądania, więc jakie są korzyści z jednego czy drugiego?
6 answers
Urllib (szczególnie urllib2) obsługuje wiele rzeczy domyślnie lub posiada odpowiednie biblioteki. Na przykład, urllib2 będzie podążać za przekierowaniami automatycznie i możesz użyć cookiejar do obsługi skryptów logowania. Są to wszystkie rzeczy, które musisz sam zakodować, jeśli używasz httplib.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-22 02:00:58
Chciałbym powiedzieć coś o urllib
, urllib2
, httplib
i httplib2
.
Główna różnica między urllib*
a httplib*
jest taka, że:
Httplib i httplib2 obsługuje żądania i odpowiedzi HTTP/HTTPs bezpośrednio i daje więcej miejsca do wykonywania własnej pracy.
Urllib i urllib2 są zbudowane na httplib, są bardziej abstrakcyjne i potężne, ale czasami nie spełniają określonych potrzeb dotyczących niektórych operacji związanych z HTTP.
I dla httplib
i httplib2
, powiedziałbym, że oba są HTTP client library
. Jednakże httplib2
jest znacznie bardziej wydajny i ma znacznie więcej funkcji niż httplib
.
Co do urllib
i urllib2
, cytuję z ten link :
Urllib i urllib2 są modułami Pythona, które wykonują żądania URL, ale oferują różne funkcje. Ich dwie najważniejsze różnice są wymienione poniżej:
- urllib2 może zaakceptować obiekt Request, aby ustawić nagłówki żądania URL, urllib akceptuje tylko adres URL. Oznacza to, że nie można maskować łańcucha agenta użytkownika itp.
- urllib dostarcza metodę urlencode, która jest używana do generowania łańcuchów zapytań GET, urllib2 nie posiada takiej funkcji. Jest to jeden z powodów, dla których urllib jest często używany wraz z urllib2.
Polecam mój osobisty blog Httplib Httplib2 Urllib Urllib2-jaka jest różnica .
Mam nadzieję, że pomoże: -)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-04 16:27:45
Urllib / urllib2 jest zbudowany na bazie httplib. Oferuje więcej funkcji niż pisanie bezpośrednio do httplib.
Jednak httplib daje lepszą kontrolę nad bazowymi połączeniami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-10 23:44:14
Jeśli masz do czynienia wyłącznie z http / https i potrzebujesz dostępu do określonych treści HTTP, użyj httplib.
We wszystkich innych przypadkach użyj urllib2.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-22 02:22:20
Jeśli potrzebujesz rzeczy wysokiego poziomu, takich jak buforowanie, Keep-Alive, kompresja lub uwierzytelnianie, spróbujhttplib2
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-23 10:05:26
Dla tych, którzy przenoszą rzeczy do Py3 (i z jakiegoś powodu nie mogą lub nie mają refakturowania, aby użyć modułu awesome requests ), jest to dobre przejście między wersjami:
try:
import http.client as httplib
except ImportError:
import httplib
Działa w obu zestawach wersji Pythona.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-20 13:50:57