G2Petter Skrevet 31. juli 2008 Del Skrevet 31. juli 2008 (endret) 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 31. juli 2008 av G2Petter Lenke til kommentar
terjeelde Skrevet 31. juli 2008 Del Skrevet 31. juli 2008 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
G2Petter Skrevet 31. juli 2008 Forfatter Del Skrevet 31. juli 2008 Nice, det fungerte strålende. Jeg skal se på pycurl etterhvert, for øyeblikket er det bare deilig å vite at jeg har tatt et skritt til på veien. Takk skal du ha. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå