Gå til innhold

Anbefalte innlegg

hei, prøver å få til å laste ned en fil fra et webdomene.

​tradisjonelt sett ville jeg kun bruke wget, men jeg har opplevd problemer med å få det til å funke.

​spesielt fordi jeg vil filtrere etter ekstensjon. med wget modulen i python ser den ut til å opprette en fil uavhengig om den er der eller ikke.

​vanskelig å forklare, men jeg kan jo gå etter det jeg har gjort så langt.

​denne modulen er brukt: https://pypi.python.org/pypi/wget

​scriptet:

​import os

​import wget


url = "http://downloads.pcworld.com/pub/new//utility_software/ccsetup402.exe"
wget.download(url)

​men den oppretter en fil uansett om filen er der eller ikke.

​vanligvis kan man gjøre --accept=exe som bryter i kommandoen, men jeg får det ikke til å funke. om det skyldes feil syntaks eller om det er fordi denne wget ikke har denne muligheten, det vet jeg ikke. men jeg hadde håpet på å få hjelp med å spesifisere filekstensjon og så laste den ned om filen eskisterer.

​takker på forhånd for all hjelp.

Lenke til kommentar
Videoannonse
Annonse

Lest implementasjonen av wget liben som du bruker, og den funker ikke som wget, selvom den heter det. Den emulerer hva wget gjør.

 

Jeg anbefaler deg å bruke subprocess og bruker wget derfra, lettere og mindre tull.

http://docs.python.org/2/library/subprocess.html#subprocess.call

 

​takker for svar. jeg glemte å nevne at jeg på nåværende tidspunkt ikke bruker linux. Vil gjerne ha en innfødt python løsning, hvis mulig. har såvidt tittet på urllib, men det virker rimelig komplisert å få det til der. vil bare legge til at jeg er veldig ny på python scripting.

Lenke til kommentar

 

​takker for svar. jeg glemte å nevne at jeg på nåværende tidspunkt ikke bruker linux. Vil gjerne ha en innfødt python løsning, hvis mulig. har såvidt tittet på urllib, men det virker rimelig komplisert å få det til der. vil bare legge til at jeg er veldig ny på python scripting.

 

prøv

import urllib
urllib.urlretrieve (nettside_med_fil, fil_navn)

Endret av JuletreDuden
Lenke til kommentar

Bruk urlretrieve() som vist over,kan også være greit og ta ut filnavnet som f.eks.

try:
    # Python2
    from urllib import urlretrieve
except ImportError:
    # Python3
    from urllib.request import urlretrieve

url = "url_adress"
filename = url.split('/')[-1]
urlretrieve(url, filename)

Kan også nevne Requests som veldig populær,som kan gjøre mange ting bedre og enklere enn urllib.

Si at "ccsetup" var enn stor fil og da kan man ønske og ikke laste hele filen til minnet som urlretrieve() gjør.

import requests

url = "url_adress"
filename = url.split('/')[-1]
r = requests.get(url, stream=True)
with open(filename, 'wb') as handle:
    for block in r.iter_content(1024):
        if not block:
            break
        handle.write(block)

 

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å
×
×
  • Opprett ny...