Gå til innhold

Jeg har problemer med et script for å laste ned bilder


Anbefalte innlegg

Jeg er helt ny i Python, og som et prosjekt tenkte jeg at jeg skulle lage et script som laster ned bilder basert på en bestemt adresse. Etter hvert skal jeg utvide det til å få ned alle bilder i en sekvens etc., men jeg må få det til å virke først. Her er det jeg har nå:

import urllib2
url = "http://gfx.dagbladet.no/pub/artikkel/5/54/542/542317/offerXcopyX45_1217523740_1217523761.jpg" #nåværende forsidebilde på dagbladet, jeg tok bare et tilfeldig bilde
req = urllib2.Request(url)
f = urllib2.urlopen(req)
g = f.read()
file = open("img_01.jpg" , "w")
file.write(g)
file.close()

Som dere kan se blir bildet jeg laster ned "noe" rart. Er det noen som har noen tips. Jeg sitter med en mistanke om at det oppstår en feil i forbindelse med at det er en binærfil, for hvis jeg endrer adressen til en tekstfil e.l. fungerer det glimrende.

Vennlig hilsen Petter

Endret av G2Petter
Lenke til kommentar
Videoannonse
Annonse
file = open("img_01.jpg" , "w")

 

Jeg vedder 2,50 på at du er på Windows eller Mac.

 

Årsaken til at det virker med tekst, men ikke med bilder, er at på disse platformene gjøres det noe automatikk i forbindelse med linebreaks når du skriver filer. For å unngå dette må du åpne filen for å skrive binært til den. Det gjør du slik:

 

file = open("img_01.jpg" , "wb")

 

(altså åpne file i mode 'wb' i stedet for 'w')

 

Hvis du skal ha ned mer enn noen få bilder, så vil jeg også anbefale deg å se på pycurl. Da får du brukt raske fine curl til å hente ned bildene for deg, og den gjør det også lett å laste ned flere samtidig. Du kan jo f.eks laste ned 2-3 filer fra samme server samtidig.

 

Dersom du senere vil legge til støtte for å finne bildene fra (x)html-kode, så vil jeg anbefale deg å se på lxml. Det er en finfin pakke som gjør det bortimot behagelig å jobbe med x(html) og xml. Rask er den også.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...