Slik laster du ned filer i Python

Python tilbyr flere måter å laste ned filer fra internett. Dette kan gjøres over HTTP ved hjelp av urllib-pakken eller forespørselsbiblioteket. Denne opplæringen vil diskutere hvordan du bruker disse bibliotekene til å laste ned filer fra nettadresser som bruker Python.

FORESPØRSLER

Behovet biblioteket er en av de mest populære biblioteker i Python. Forespørsler lar deg sende  HTTP / 1.1-forespørsler uten at man må legge til spørringsstrenger manuelt på webadressene dine, eller skjema-kode inn POST-dataene dine.

Med forespørselsbiblioteket kan du utføre mange funksjoner, inkludert:

  • legger til formdata,
  • legger til flerfilefiler,
  • og tilgang til svardataene til Python

Gjør forespørsler

Det første du må gjøre er å installere biblioteket, og det er så enkelt som:

pip installasjonsforespørsler

For å teste om installasjonen har vært vellykket, kan du gjøre en veldig enkel test i python tolken ved å bare skrive:

importer forespørsler

Hvis installasjonen har vært vellykket, blir det ingen feil.

HTTP-forespørsler inkluderer:

  • POST
  • SETTE
  • SLETT
  • ALTERNATIVER
  • HODE

Gjør en GET-forespørsel

Å gjøre forespørsler er veldig enkelt som illustrert nedenfor.

importer forespørsler req = requests.get ("http://www.google.com")

Kommandoen ovenfor vil få google websiden og lagre informasjonen ireq variabel. Vi kan da fortsette å få andre attributter også.

For eksempel, hvis du vil vite om henting av google websiden var vellykket, vil vi spørre status_code.

importforespørsler req = requests.get ("http://www.google.com") req.status_code 200 # 200 betyr en vellykket forespørsel

Hva om vi vil finne ut kodingstypen til Googles nettside?

req.encoding ISO-8859-1

Du vil kanskje også vite innholdet i svaret.

req.text

Dette er bare et avkortet innhold av svaret.

'Google>

Lag en POST-forespørsel

Enkelt sagt, en POST-forespørsel som brukes til å opprette eller oppdatere data. Dette brukes spesielt ved innsending av skjemaer.

La oss anta at du har et registreringsskjema som tar en e-postadresse og et passord som inntastingsdata, når du klikker på send-knappen for registrering, vil forespørselen bli som vist nedenfor.

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

Lag en PUT-forespørsel

En PUT-forespørsel ligner en POST-forespørsel. Det pleide å oppdatere data. For eksempel viser APIen nedenfor hvordan du gjør en SETTE be om.

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

Lag en DELETE forespørsel

En DELETE-forespørsel, som navnet antyder, brukes til å slette data. Nedenfor er et eksempel på a SLETT be om

data = 'navn': 'Tutsplus' url = "https://www.contact.com/api/") respons = requests.delete (url, params = data)

urllib pakke

urllib er en pakke som samler flere moduler for å jobbe med nettadresser, nemlig:

  • urllib.request for å åpne og lese nettadresser.
  • urllib.error inneholder unntakene hevet av urllib.request
  • urllib.parse for å analysere nettadresser.
  • urllib.robotparser for parsing robots.txt filer.

urllib.request  tilbyr et veldig enkelt grensesnitt, i form av urlopen funksjon som er i stand til å hente nettadresser ved hjelp av en rekke forskjellige protokoller. Den tilbyr også et litt mer komplekst grensesnitt for håndtering av grunnleggende godkjenning, informasjonskapsler, proxyer e.t. c.

Slik henter du nettadresser med urllib

Den enkleste måten å bruke urllib.request på er som følger:

importer urllib.request med urllib.request.urlopen ('http://python.org/') som svar: html = response.read () 

Hvis du ønsker å hente en internettressurs og lagre den, kan du gjøre det via urlretrieve () funksjon.

import urllib.request filnavn, overskrifter = urllib.request.urlretrieve ('http://python.org/') html = open (filnavn) 

Laster ned bilder med Python

I dette eksemplet vil vi laste ned bildet som er tilgjengelig på denne lenken, ved hjelp av både forespørselen llibrary og urllib-modulen. 

url = 'https://www.python.org/static/opengraph-icon-200x200.png' # nedlasting med urllib # importert urllib biblioteket import urllib # Kopier et nettverksobjekt til en lokal fil urllib.urlretrieve (url, " python.png ") # Nedlasting med forespørsler # Importer forespørsler Bibliotek Import forespørsler # Last ned innholdet i binær format r = Requests.get (url) # Åpne metode for å åpne en fil på systemet ditt og skriv innholdet med åpent (" python1.png "," wb ") som kode: code.write (r.content) 

Last ned PDF-filer med Python

I dette eksemplet vil vi laste ned en pdf om google trender fra denne linken.

url = 'https://static.googleusercontent.com/media/www.google.com/en//googleblogs/pdfs/google_predicting_the_present.pdf' # laster ned med urllib # importerer urllib-pakken import urllib # Kopier et nettverksobjekt til en lokal fil urllib.urlretrieve (url, "tutorial.pdf") # lastes ned med forespørsler # import forespørsler bibliotek import forespørsler # last ned innholdet i binært format r = requests.get (url) # åpen metode for å åpne en fil på din system og skriv innholdet med åpent ("tutorial1.pdf", "wb") som kode: code.write (r.content) 

Last ned zip-filer med python

I dette eksemplet skal vi laste ned innholdet i et GitHub-depot som finnes i denne linken, og lagre filen lokalt.

url = 'https://codeload.github.com/fogleman/Minecraft/zip/master' # nedlasting med forespørsler # importer forespørsler bibliotek import forespørsler # last ned filinnholdet i binært format r = requests.get (url) # open metode for å åpne en fil på systemet ditt og skrive innholdet med åpent ("minemaster1.zip", "wb") som kode: code.write (r.content) # laste ned med urllib # importere urllib biblioteket import urllib # Kopier en nettverksobjekt til en lokal fil urllib.urlretrieve (url, "minemaster.zip") 

Last ned videoer med Python

I dette eksemplet vil vi laste ned videoforelesningen som er tilgjengelig på denne siden

url = 'https://www.youtube.com/watch?v=aDwCCUfNFug' video_name = url.split ('/') [- 1] # ved bruk av forespørsler # importerte forespørsler bibliotekets importforespørsler skriv ut "Nedlasting av fil:% s "% video_name # last ned URL-innholdet i binært format r = requests.get (url) # åpen metode for å åpne en fil på systemet ditt og skriv innholdet med åpent ('tutorial.mp4', 'wb') som f: f .write (r.content) # ved hjelp av urllib # importerte urllib biblioteket import urllib print "Nedlasting av fil:% s"% video_name # Kopier et nettverksobjekt til en lokal fil urllib.urlretrieve (url, "tutorial2.mp4") 

Konklusjon

Denne opplæringen har dekket de mest brukte metodene for å laste ned filer, så vel som de vanligste filformatene. Selv om du vil skrive mindre kode når du bruker urllib modul, den forespørsler Modulen er foretrukket på grunn av sin enkelhet, popularitet og et bredt spekter av funksjoner, inkludert:

  • Hold-Alive & Connection Pooling
  • Internasjonale domener og nettadresser
  • Sessioner med informasjonskapsler
  • SSL-verifisering av nettleserstil
  • Automatisk innholdskoding
  • Grunnleggende / Digest-godkjenning
  • Elegante nøkkel / verdi kaker
  • Automatisk dekomprimering
  • Unicode Response Bodies
  • HTTP (S) Proxy Support
  • Flerefilopplastinger
  • Streaming nedlastinger
  • Tilkoblingstidsavbrudd
  • Chunked Forespørsler
  • .netrc Brukerstøtte