Найти Π² Π”Π·Π΅Π½Π΅
МашинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅

[πŸ“• Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ] urllib, urllib2, urllib3, ... ?

ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ сущСствуСт нСсколько Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для выполСния HTTP запросов Π½Π° Python. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этими функциями. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся.Β  Π–ΠΈΠ»-Π±Ρ‹Π» встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ urllib Π² Python 2.x. Π’Ρ‹ΡˆΠ΅Π» Python 3 ΠΈ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Ρ€Π°Π·Π±ΠΈΠ»ΠΈ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ urllib.request, urllib.error, urllib.parse. А для Π²Π΅Ρ‚ΠΊΠΈ Python 2 Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π²Π°Π»ΠΈ Π² urllib2. ΠŸΡ€ΠΈ этом urllib (Π±Π΅Π· Ρ†ΠΈΡ„Ρ€) Π΅ΡΡ‚ΡŒ ΠΈ Python 3, ΠΈ Π² Python 2. Π˜Ρ‚ΠΎΠ³ΠΎ: πŸ‘‰ urllib - встроСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для открытия URL ссылок (прСимущСствСнно HTTP запросов). Π°) Python 2: Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ urllib2 (Π”ΠΎ вСрсии 2.7.9 urlopen Π² urllib Π½Π΅ провСряСт HTTPS сСртификаты!) Π±) Python 3: ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½ΠΎ нСудобная. πŸ‘‰ urllib2 - это Π½Π΅ вторая вСрсия urllib, Π° вСрсия urllib для Python 2! πŸ‘‰ urllib3 - это Π½Π΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ вСрсия urllib, это Π²ΠΎΠΎΠ±Ρ‰Π΅ строронняя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (pip install urllib3). ΠžΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ, ΠΏΡƒΠ»Π°ΠΌΠΈ соСдинСний, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ сТатия, прокси ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠΌΠΈ Ρ„ΠΈΡˆΠΊΠ°ΠΌΠΈ. Π‘Π΄Π΅Π»Π°Π½Π° ΠΏΠΎΠ²Π΅Ρ€Ρ… socket. πŸ‘‰ httplib - это

ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ сущСствуСт нСсколько Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для выполСния HTTP запросов Π½Π° Python. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этими функциями. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся.Β 

Π–ΠΈΠ»-Π±Ρ‹Π» встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ urllib Π² Python 2.x. Π’Ρ‹ΡˆΠ΅Π» Python 3 ΠΈ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Ρ€Π°Π·Π±ΠΈΠ»ΠΈ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ urllib.request, urllib.error, urllib.parse. А для Π²Π΅Ρ‚ΠΊΠΈ Python 2 Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π²Π°Π»ΠΈ Π² urllib2. ΠŸΡ€ΠΈ этом urllib (Π±Π΅Π· Ρ†ΠΈΡ„Ρ€) Π΅ΡΡ‚ΡŒ ΠΈ Python 3, ΠΈ Π² Python 2. Π˜Ρ‚ΠΎΠ³ΠΎ:

πŸ‘‰ urllib - встроСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для открытия URL ссылок (прСимущСствСнно HTTP запросов).

Π°) Python 2: Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ urllib2 (Π”ΠΎ вСрсии 2.7.9 urlopen Π² urllib Π½Π΅ провСряСт HTTPS сСртификаты!)

Π±) Python 3: ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½ΠΎ нСудобная.

πŸ‘‰ urllib2 - это Π½Π΅ вторая вСрсия urllib, Π° вСрсия urllib для Python 2!

πŸ‘‰ urllib3 - это Π½Π΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ вСрсия urllib, это Π²ΠΎΠΎΠ±Ρ‰Π΅ строронняя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (pip install urllib3). ΠžΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ, ΠΏΡƒΠ»Π°ΠΌΠΈ соСдинСний, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ сТатия, прокси ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠΌΠΈ Ρ„ΠΈΡˆΠΊΠ°ΠΌΠΈ. Π‘Π΄Π΅Π»Π°Π½Π° ΠΏΠΎΠ²Π΅Ρ€Ρ… socket.

πŸ‘‰ httplib - это Π³ΠΎΠ»Ρ‹ΠΉ HTTP ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для Python 2. ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π° Π² http.client Π² Python 3. Π‘ΠΎΠ»Π΅Π΅ "Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ" ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ρ‡Π΅ΠΌ urllib. НапримСр, Ссли urllib ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚Ρ‹, Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с httplib Π²Π°ΠΌ придСтся Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π»ΠΎΠ³ΠΈΠΊΡƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

πŸ‘‰ httplib2 - это сторонний HTTP ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (pip install httplib2). Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½?!

А рСкомСндуСтся (Π΄Π°ΠΆΠ΅ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Python) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ requests:

πŸ‘‰ requests - это сторонняя Π±ΠΈΠ±Π»ΠΎΡ‚Π΅ΠΊΠ° для выполнСния HTTP запросов (pip install requests). По ΠΎΠ±Ρ‰Π΅ΠΌΡƒ мнСнию ΠΎΠ½Π° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простым ΠΈ элСгантным интСрфСйсом. ΠŸΡ€ΠΈ этом ΠΎΠ½Π° Π½Π°Π΄Π΅Π»Π΅Π½Π° ΠΌΠΎΡ‰Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ возмоТностСй. ΠšΡΡ‚Π°Ρ‚ΠΈ, requests сдСлана ΠΏΠΎΠ²Π΅Ρ€Ρ… urllib3.

python

Python/ django