Cum se descarcă fișiere în Python

Python oferă mai multe moduri de a descărca fișiere de pe internet. Acest lucru se poate face prin HTTP folosind pachetul urllib sau biblioteca de cereri. Acest tutorial va discuta cum să utilizați aceste biblioteci pentru a descărca fișiere din URL-uri folosind Python.

CERERI

Biblioteca de solicitări este una dintre cele mai populare biblioteci din Python. Solicitările vă permit să trimiteți  Solicitări HTTP / 1.1 fără a fi nevoie să adăugați manual șiruri de interogare către adresele URL sau să codificați datele POST.

Cu biblioteca de solicitări puteți efectua o mulțime de funcții, inclusiv:

  • adăugând date de formular,
  • adăugarea fișierelor cu mai multe părți,
  • și accesarea datelor de răspuns ale Python

REALIZAREA CERERILOR

Primul lucru pe care trebuie să-l faceți este să instalați biblioteca și este la fel de simplu:

cerințele de instalare pentru pip

Pentru a testa dacă instalarea a avut succes, puteți efectua un test foarte ușor în interpretul dvs. python prin tastarea pur și simplu:

cererile de import

Dacă instalarea a avut succes, nu vor exista erori.

Solicitările HTTP includ:

  • OBȚINE
  • POST
  • A PUNE
  • ȘTERGE
  • OPȚIUNI
  • CAP

Efectuarea unei solicitări GET

Efectuarea solicitărilor este foarte ușoară, după cum este ilustrat mai jos.

cereri de import req = requests.get ("http://www.google.com")

Comanda de mai sus va primi pagina web Google și va stoca informațiile înreq variabil. Putem apoi să continuăm să obținem și alte atribute.

De exemplu, pentru a afla dacă reținerea paginii web Google a avut succes, vom interoga status_code.

cereri de import req = requests.get ("http://www.google.com") req.status_code 200 # 200 înseamnă o solicitare de succes

Ce se întâmplă dacă vrem să aflăm tipul de codare al paginii web Google?

codificarea codului ISO-8859-1

S-ar putea să doriți, de asemenea, să cunoașteți conținutul răspunsului.

req.text

Acesta este doar un conținut trunchiat al răspunsului.

'Google>

Efectuarea unei solicitări POST

În termeni simpli, o cerere POST folosită pentru a crea sau actualiza date. Acest lucru este folosit în special în prezentarea formularelor.

Să presupunem că aveți un formular de înregistrare care utilizează o adresă de e-mail și o parolă ca date de intrare, când faceți clic pe butonul de trimitere pentru înregistrare, solicitarea de postare va fi așa cum este arătat mai jos.

date = "email": "[email protected]", "parola": "12345") req = requests.post ("http://www.google.com, params =

Efectuarea unei cereri PUT

O solicitare PUT este similară cu o cerere POST. Este folosit pentru a actualiza date.For exemplu, API de mai jos arată cum se face a A PUNE cerere.

date = "nume": "tutsplus", "telefon": "12345") r.put ("http://www.contact.com, params = date")

Efectuarea unei solicitări DELETE

O solicitare DELETE, cum sugerează și numele, este utilizată pentru ștergerea datelor. Mai jos este un exemplu de a ȘTERGE cerere

date = 'nume': 'Tutsplus' url = "https://www.contact.com/api/") răspuns = requests.delete (url, params = date)

urllib Pachet

urllib este un pachet care colectează mai multe module pentru a lucra cu adresele URL și anume:

  • urllib.request pentru deschiderea și citirea adreselor URL.
  • urllib.error conținând excepțiile ridicate de urllib.request
  • urllib.parse pentru parsarea adreselor URL.
  • urllib.robotparser pentru parsare robots.txt fișiere.

urllib.request  oferă o interfață foarte simplă, sub formă de urlopen funcția capabilă să preia adresele URL folosind o varietate de protocoale diferite. De asemenea, oferă o interfață ușor mai complexă pentru manipularea autentificării de bază, cookie-uri, proxy e.t. c.

Modul de preluare a adreselor URL cu urllib

Cea mai simplă modalitate de a utiliza urllib.request este următoarea:

import urllib.request cu urllib.request.urlopen ('http://python.org/') ca răspuns: html = response.read () 

Dacă doriți să preluați o resursă de internet și să o stocați, puteți face acest lucru prin intermediul urlretrieve () funcţie.

import urllib.request numele fișierului, headers = urllib.request.urlretrieve ('http://python.org/') html = open (numele fișierului) 

Descărcarea de imagini cu Python

În acest exemplu, dorim să descărcăm imaginea disponibilă pe acest link utilizând atât modulul de cerere llibrary, cât și modulul urllib. 

url = 'https://www.python.org/static/opengraph-icon-200x200.png' # descărcarea cu urllib # a importat urllib biblioteca import urllib # Copiați un obiect de rețea într-un fișier local urllib.urlretrieve (url, " python.png ") # descărcare cu cereri # import cereri de import bibliotecă cereri # descărca conținutul url în format binary r = requests.get (url) # open metoda pentru a deschide un fișier în sistem și a scrie conținutul cu open (" python1.png "," wb ") ca cod: code.write (r.content) 

Descărcați fișiere PDF cu Python

În acest exemplu, vom descărca un pdf despre tendințele Google din acest link.

url = 'https://static.googleusercontent.com/media/www.google.com/en//googleblogs/pdfs/google_predicting_the_present.pdf' # descărcarea cu urllib # importul pachetului urllib import urllib # Copiați un obiect de rețea într-o fișier local urllib.urlretrieve (url, "tutorial.pdf") # descărcare cu cereri # import cereri de cereri de import bibliotecă # descărca conținutul fișierului în format binar r = requests.get (url) # open method pentru a deschide un fișier pe și scrieți conținutul deschis ("tutorial1.pdf", "wb") ca cod: code.write (r.content) 

Descărcați fișiere zip cu Python

În acest exemplu, vom descărca conținutul unui depozit GitHub găsit în acest link și vom stoca fișierul local.

url = 'https://codeload.github.com/fogleman/Minecraft/zip/master' # descărcarea cu cereri # import cererile de import bibliotecă cereri # descărca conținutul fișierului în format binary r = requests.get (url) # open metodă pentru a deschide un fișier pe sistemul dvs. și pentru a scrie conținutul deschis ("minemaster1.zip", "wb") ca cod: code.write (r.content) # descărcare cu urllib # import urllib bibliotecă import urllib # obiect de rețea către un fișier local urllib.urlretrieve (url, "minemaster.zip") 

Descărcați clipuri video cu Python

În acest exemplu, dorim să descărcăm cursul video disponibil pe această pagină

url = 'https://www.youtube.com/watch?v=aDwCCUfNFug' video_name = url.split ('/') [- 1] # folosind cererile # importate cererile de import de biblioteci de cereri print "Descărcarea fișierului:% s "% video_name # descărcați conținutul urlului în format binary r = requests.get (url) # metoda open pentru a deschide un fișier pe sistemul dvs. și scrieți conținutul deschis ('tutorial.mp4', 'wb') ca f: f .write (r.content) # folosind urllib # a importat urllib biblioteca import urllib print "Descărcarea fișierului:% s"% video_name # Copiați un obiect de rețea într-un fișier local urllib.urlretrieve (url, tutorial2.mp4) 

Concluzie

Acest tutorial a acoperit metodele cele mai frecvent utilizate pentru descărcarea fișierelor, precum și cele mai comune formate de fișiere. Chiar dacă veți scrie mai puțin cod atunci când utilizați urllib modulul, cereri modulul este preferat datorită simplității sale, popularității și a unei game largi de caracteristici care includ:

  • Keep-Alive & Pooling conexiune
  • Domeniile și URL-urile internaționale
  • Sesiuni cu Persistență Cookie
  • Verificarea SSL în stil de browser
  • Decodarea automată a conținutului
  • De bază / Autentificare Digest
  • Cookie-uri cheie / valoare elegante
  • Decompresie automată
  • Unicode Body Response
  • Suport HTTP (S) Proxy
  • Încărcări de fișiere multiple
  • Descărcări în flux
  • Timp de conectare
  • Cereri înșelătoare
  • .netrc A sustine

Cod