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.
  24 3977
Hei!

Hvordan kan jeg laste ned alle bilder fra en nettside,eller mer bestemt, en mappe på en nettside?

www.example.com/image/images/
er et eksempel på det jeg vil ha ned. Altså, i en mappe på en side.
Alt jeg vet er at det er en index.html fil der også, så jeg får ikke sett den "index of/" tingen osv.
Sist endret av Erlendman; 16. februar 2014 kl. 09:04.
Hvordan kan jeg laste ned alle bilder fra en nettside,eller mer bestemt, en mappe på en nettside?
Vis hele sitatet...
Det finnes ikke en metode,man analyser hvordan siden er bygd opp(Firebug, Chrome DevTools), og så skiver man kode.
Dette kalles web scraping,det kunne et språk gjør dette mye lettere.
Jeg bruker Python til dette,med bibliotek som BeautifulSoup, Lxml, Scrapy, Selenium.

Er programmering noe du er helt blank på,kan du prøve med verktøy som BatchDownloader.
Jeg husker et program jeg hadde for noen år siden. La bare inn adressen til en nettside og det kunne laste ned alle bildene fra den siden og x antall sider linket fra den første. Riktignok ble bare bilder som var linket på sidene lastet ned.
Husker ikke hva programmet het i farten, men skal se om jeg prøve å finne det igjen...
Er det <img src="x"> tagger eller bare en typisk apache folder med link til bildene som du skal ha?

For ikke så lenge siden lagde jeg en enkel kode som kan gjøre begge deler ovenfor - altså ta bildene eller ihvertfall samle de til en enkel side. Det er PHP, så bare svar meg her så kan jeg sende den til deg over pm. (NB: Jeg skulle lagt den ut, men det blir litt for mange filer ettersom den bruker en DOM)
Gitarist
Erlendman's Avatar
Trådstarter
Det er en typisk folder med bilder i.
Sitat av Erlendman Vis innlegg
Det er en typisk folder med bilder i.
Vis hele sitatet...
Definer "typisk" i denne sammenhengen.
Sist endret av 0xFF; 16. februar 2014 kl. 15:15.
Har brukt denne tidligere, kan laste ned flere nivåer: http://www.pagesucker.com/
Det er en typisk folder med bilder i.
Vis hele sitatet...
Det er så enkelt ja,det er en folder med alle bilder som du tilgang til?
Kansje litt på tynn is her.

For og ta litt om et tenklig oppsett,dette varierer selvfølgelig fra side til side.
En database er vanlig,si databasen har hash av bildedata som igjen finner bilder som som ligger på disk uten å tenke på filnavn.
På disk kan det være en mappe som heter "site/all_image",
men som regel kan ikke du som utenforstående logge deg inn på serveren og bare laste ned alle bildene uten og ha tilgang dette.

Nå finnes det det flere verktøy(BatchDownloader, DownThemAl l...osv),"søk google" som kan laste ned bilder fra websider.
Da trenger du ikke sette deg inn i hvordan dette fungerer,eller skrive kode som gjøre dette.
Gitarist
Erlendman's Avatar
Trådstarter
Okei, kan like så godt dele siden :P
www.solomid.net/guide/items/
Der er mappa jeg vil ha ned.
Eksempel på at jeg vet det er bilder der http://www.solomid.net/guide/items/trinity-force.png
Sitat av Erlendman Vis innlegg
Okei, kan like så godt dele siden :P
www.solomid.net/guide/items/
Der er mappa jeg vil ha ned.
Eksempel på at jeg vet det er bilder der http://www.solomid.net/guide/items/trinity-force.png
Vis hele sitatet...
Det er ikke praktisk mulig.
Teoretisk kan du brute-force alle mulige navn på filer, men det vil enten føre til at du blir blokkert eller ta årevis.
Sist endret av Goophy; 16. februar 2014 kl. 16:15.
Gitarist
Erlendman's Avatar
Trådstarter
Ah crap...
Oh well, får finne bildene på en annen måte da
Sitat av Erlendman Vis innlegg
Ah crap...
Oh well, får finne bildene på en annen måte da
Vis hele sitatet...
f.eks. finn sider hvor alle "items" fra league of legends er synlig, og lagre siden inkl. bilder?

eks: gameinfo.na.leagueoflegends.com/en/game-info/items/

Enda et eksempel: mobafire.com/league-of-legends/build/in-depth-item-guide-97205

Dersom du bruker pagesucker, kan du sette nivå den skal grave til 2, så henter den alle bilder fra alle linkene til f.eks. guiden jeg nevnte, og de litt større bildene fra sidene for hvert enkelt item...
Sist endret av Turbolego; 16. februar 2014 kl. 16:31.
Jeg ville brukt wget, men det blir sikkert litt for avansert for deg. Finnes windowspogrammer også som kan gjøre det samme.
Måken's Aspirant
Fleff's Avatar
Donor
Gir du meg noen minutter til, så har jeg alt, laster opp litt senere.

Sitat av Fleff Vis innlegg
Gir du meg noen minutter til, så har jeg alt, laster opp litt senere.

Vis hele sitatet...
Kewlt! Hvilken metode brukte du?

Bildesøk på bilder med lenker som begynner på " http://www.solomid.net/guide/items/* " ?
Sist endret av Turbolego; 16. februar 2014 kl. 16:59.
Gitarist
Erlendman's Avatar
Trådstarter
Awesome!
Håper du deler med meg
Fleff, har du mekka et script som finner alle bilder på 64 x 64 og som har url som begynner på " http://www.solomid.net/guide/items/* " ?

Prøvde selv i google...



[EDIT:]

prøvde å lagre google-bildesøk-siden med bildene, måtte legge til ".jpg" i hvert eneste filnavn, gah



Fleff har nok en bedre metode?

[EDIT 2:]

Ser ut som det bare er å gå inn på denne siden:

solomid.net/guide/view/4844-generic-build-guide-by-cormag

Velge File --> Save Page as...

Også får du alle bildene...



Mangler man noen da?
Sist endret av Turbolego; 16. februar 2014 kl. 17:13. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Gitarist
Erlendman's Avatar
Trådstarter
Gleder meg til å se resultatet ditt, Fleff!
Måken's Aspirant
Fleff's Avatar
Donor
Jeg fikk _litt_ mer enn jeg ba om, wget på så og si hele mappestrukturen, så si ifra om du trenger noe mer, ellers sletter jeg det (12 900 filer)

Er usikker på om jeg fikk alle bildene før jeg avbrøyt(173) Men noe er vel brukbart.
http://www.speedyshare.com/cUBhs/www...guideitems.rar
Kan skrive litt som gjøre oppgaven.
Går her igjennom 20 sider og laster ned bilder som er i "items".
Rett under 100 bilder på de 20 første sidene,gir dette som resultat.

Kode

import requests, re
from urllib import urlretrieve

for page in range(1,21):
    url = "http://www.solomid.net/guide/?currpage={}&page={}&sort=2".format(page, page+1)
    url_read = requests.get(url)
    text = url_read.text
    pic = re.compile(r'items/(.+?)"')
    pic_lst = []
    for match in pic.finditer(text):
        pic_lst.append(match.group(1))
    pic_lst = set(pic_lst)
    for name in pic_lst:
        url = 'http://www.solomid.net/guide/items/{}.png'.format(name)
        urlretrieve(url, '{}'.format(url.split('/')[-1]))
Sist endret av snippsat; 16. februar 2014 kl. 22:03.
Gitarist
Erlendman's Avatar
Trådstarter
Har lastet opp alle bildene til serveren min nå! Er det meste der, tror jeg.
Ellers laster jeg opp de som mangler manuelt!

Takk til alle som hjalp til, og spesielt takk til Fleff som fant alle bildene
Låner tråden da jeg lurer på det samme.

Men her har bildene løpetall i navnet (dato). Noen som er dyktige med bash som kan hjelpe meg med wget her?

eks på filnavn.
http://g2.start.no/tegneserier/strip...UT20140201.gif
http://g2.start.no/tegneserier/strip...UT20140202.gif

Tenkte kanskje man kunne bruke jot her, men sliter med å få den til å starte telling med 0.

Kode

for number in `jot - 1 1231`; do wget http://g2.start.no/tegneserier/striper/mutts/MUT2013$number.gif; done
Problemet blir månedskifte 09-10

Som det er nå kjører jeg det i to ulike operasjoner. Før og etter 20130931
Sist endret av optimus111; 19. februar 2014 kl. 00:34. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Måken's Aspirant
Fleff's Avatar
Donor
Jeg gjorde det litt mer tungvindt, genererte en liste med datoer fra første dato lagt ut (2009-03-23) til dagens dato, og kjørte hele listen, 1795 elementer om jeg ikke husker feil, men omtrent 30 striper 404'd.

Om du ikke har alle: http://speedy.sh/ysbP5/MUTTS.rar

Edit: Tanken slo meg aldri, men filnavnene hittil stopper på 2014-06-30, og ikke dagens dato(Som på en eller annen måte virket logisk for meg )
Sist endret av Fleff; 19. februar 2014 kl. 02:36. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Sitat av optimus111 Vis innlegg
Låner tråden da jeg lurer på det samme.

Men her har bildene løpetall i navnet (dato). Noen som er dyktige med bash som kan hjelpe meg med wget her?

eks på filnavn.
http://g2.start.no/tegneserier/strip...UT20140201.gif
http://g2.start.no/tegneserier/strip...UT20140202.gif

Tenkte kanskje man kunne bruke jot her, men sliter med å få den til å starte telling med 0.

Kode

for number in `jot - 1 1231`; do wget http://g2.start.no/tegneserier/striper/mutts/MUT2013$number.gif; done
Problemet blir månedskifte 09-10

Som det er nå kjører jeg det i to ulike operasjoner. Før og etter 20130931
Vis hele sitatet...
Kjør en nøstet løkke.
for i in `seq -w 1 12`; do for j in `seq -w 1 31`; do wget http://g2.start.no/tegneserier/striper/mutts/MUT2013$i$j.gif; done;done
Problemet blir månedskifte 09-10
Vis hele sitatet...
Et naturlig valg her vil være og bruke et dato bibliotek,bash har vel date som kan brukes til dette.
Kan ta litt om dette i Python,husk at Python er pre-installert på alle linux distroer.
Nå har Goophy skrevet noe som fungere,men husk det er fort gjort og gjør feil når man man gjør dette maulet f.eks skuddår.

Først bare for telle alle dager.

Kode

>>> from datetime import timedelta, date

>>> start_date = date(2009,3,23)
>>> end_date = date(2014,06,30)
>>> diff = end_date - start_date
>>> print diff
1925 days, 0:00:00
Lage kode som laster ned alle 1925 bilder,minus ca 30 med 404.

Kode

from datetime import timedelta, date
from urllib import urlretrieve

def daterange(start_date, end_date):
    for n in range(int ((end_date - start_date).days)):
        yield start_date + timedelta(n)

start_date = date(2009,3,23)
end_date = date(2014,03,30)

for day in daterange(start_date, end_date):
    url ='http://g2.start.no/tegneserier/striper/mutts/MUT{}.gif'.format(day.strftime("%Y%m%d"))
    urlretrieve(url, '{}'.format(url.split('/')[-1]))
Sist endret av snippsat; 19. februar 2014 kl. 15:48.