Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  8 892
Hei, jeg lurte på om det finnes et program/en måte å "lytte" på en webside (f.eks. www.nettside.com/testfil.zip), og når filen på adressen blir lastet opp så laster programmet ned filen?

Grunnen til at jeg spør er fordi jeg venter på en fil, og istedenfor å måtte prøve å refreshe siden hele tiden så lurte jeg på om det var mulig å automatisk gjøre dette på en måte?
Trigonoceps occipita
vidarlo's Avatar
Donor
Nei. Det finst ikkje. Det er imidlertid trivielt å lage et skript som sjekker om fila er der t.d. femtekvart minutt, og laster ned om den dukker opp. I bash burde det vere gjort på ca. tre linjer.
det kan gjøres omtrent slik:

Kode

URL="http://whatev.er"
FOO=`curl -I $URL | head -1`
if  [ $FOO="HTTP/1.1 200 OK ]
then
curl -O $URL
fi
sleng i crontab, kjør hvert n-te minutt. Evt kjør i loop med sleep(n) og break når fila faktisk er funnet så du ikke laster ned flere ganger
Sist endret av liasis; 20. desember 2013 kl. 14:17.
[quote=moridin;3052848]det kan gjøres omtrent slik:

Kode

URL="http://whatev.er"
FOO=`curl -I $URL | head -1`
if  [ $FOO="HTTP/1.1 200 OK ]
then
curl -O $URL
fi
tillater meg å pimpe denne litt!

Kode

link="http://side.com/fil.zip"
echo "Monitoring for file: $link"
while [ true ]; do
    if curl -sI "$link" | grep -qe '^HTTP/1[^ ]* 200 OK.\?$'; then
        notify-send --urgency=low "File has appeared. Downloading..."
        curl -O "$link"
        notify-send --urgency=low "Downloading has completed."
        break
    else
        echo -n '.'
    fi
    sleep 5m
done
Takker og bukker folkens, men crontab, etter litt googling så ser det ut som dette er forbeholdt linux. Jeg drister meg til å spørre, hadde det vært mulig å fått et windows alternativ?
Sitat av simchris111 Vis innlegg
Takker og bukker folkens, men crontab, etter litt googling så ser det ut som dette er forbeholdt linux. Jeg drister meg til å spørre, hadde det vært mulig å fått et windows alternativ?
Vis hele sitatet...
Kjør scriptet igjennom Cygwin.
nso
popålol
nso's Avatar
Administrator
Her er for Windows:

1. Last ned http://paaltuv.no/dump/csharp/Debug.rar
2. Pakk ut
3. Åpne filen SemenProductionPlant.exe.config og gjør nødvendige endringer (hvilken fil, hvor den skal lagres, hvor ofte den skal hentes)
4. Kjør SemenProductionPlant.exe

Kildekode her for de paranoide: http://paaltuv.no/dump/csharp/SemenProductionPlant.rar

Krever .NET Framework 4
Sist endret av nso; 20. desember 2013 kl. 15:20.
Tusen takk folkens! Nå har jeg googlet etter dette i to dager, så kommer dere med flere løsninger på to timer, jeg er imponert og takknemlig!
En i Python(2.7.6),viss filen eksistere laster den hvert minutt.
Virker kryssplattform og tiden for sjekking kan du sette til hva du vil.

Kode

import urllib
from urllib import urlretrieve
import sched, time

def do_event(time_check=60):
    try:
        url = urllib.urlopen('url_adress')
        if url.code == 200:
            filename = url.geturl().split('/')[-1]
            urlretrieve(url.geturl(), filename)
            print("File saved as {}".format(filename))
        else:
            print('File not found')
    except IOError:
        print('Error with conntion')
    s.enter(time_check, 1, do_event, ())

s = sched.scheduler(time.time, time.sleep)
time_check = 60 #sec
s.enter(time_check, 1, do_event, ())
s.run()