Gå til innhold

[Løst] Laste ned samtlige Lunch-striper fra Dagbladet


Anbefalte innlegg

Jeg hadde nok laget forumposten selv om jeg hadde hatt linux, du.

Antagelig. Men løsningen hadde vært betydelig greiere.

 

Strengt tatt, så er det vel din kunnskap som lot deg løse problemet på 4 minutter. Det at du bruker vertøykassa linux er vel egentlig irrellevant i denne sammenhengen, ettersom lignende verktøy er tilgjengelig på andre platformer.

Ja, takket være portabilitet. Det jeg skrev bør i grunn også fungere på OS X, *BSD og andre *nixes, samt Windows dersom man installerer riktige binaries, for eksempel cygwin. Men det er ganske mye ekstra som må ned og inn fordi default userland er forkrøplet. *nix har ikke det problemet.

 

 

Hjelper lite å ha linux om du ikke kan scripte slike ting uansett. Og kan du scripte hadde det ikke tatt så mye mer tid å bare skrive et python-script som gjør akkurat det samme. Ser virkelig ingen behov for å være klysete bare fordi noen kjører et annet operativsystem enn deg.

Og da må du inn med python + libs som HELLER ikke bundles med Windows.

 

Men nå har jeg strengt tatt produsert både en shell-løsning og en (ikke testet) python-løsning. Begge vil kreve betydelige mengder installert software.

Lenke til kommentar
Videoannonse
Annonse

Du hadde selvfølgelig krevd at du hadde python om du var på windows - men for en som har kunskapen til å scripte i python vil det være en selvfølge å ha det instalert. I tillegg er det betydelig lettere å be folk laste ned python enn å nesten be de innstalere et annet OS. (og for problemet til TS er eksterne biblioteker ikke nødvendig i det hele tatt når urllib funker mer enn bra nok for oppgaven)

 

Hele problemet her er at du absolutt skulle fremstå som klysete og nedverdigende mot TS bare fordi han velger å bruke Windows - som helt klart er et bra operativsystem og dekker enkelte behov linux ikke gjør i dag. Bare fordi windows er en dårlig plattform til ditt bruk gjør det ikke sant for alle andre.

 

Poenget er at det ikke var plattformen hans som gjorde at han måtte stille spørsmål - det var kompetansen. Om han hadde brukt linux hadde nok den samme tråden blitt opprettet.

Endret av etse
  • Liker 1
Lenke til kommentar

Hadde han kunnet scripte python hadde han neppe spurt om hjelp. :-----------)

 

--

 

Igjen, det er ikke OSet som er greien, det er userland.

 

--

 

urllib funker nok helt fint, det er bare å gjøre det. Jeg er ikke så kjent med python til slikt (da jeg har, du vet, wget).

 

--

 

Trådstarters feil for ikke å spesifisere platform. Konklusjonen din om "bra" etc velger jeg å se bort ifra, men userland viste seg jo nettopp å ikke være helt på topp.

  • Liker 1
Lenke til kommentar
urllib funker nok helt fint, det er bare å gjøre det. Jeg er ikke så kjent med python til slikt (da jeg har, du vet, wget).

 

urlllib er greit til dette ja,jeg bruker så si aldri wget i Python.

Man trenger ikke wget i Python og har sine bakedeler som nevt ikke kryssplateform.

Nå ville jeg helst brukt Request,som er mer moderne enn urllib.

 

Viss du vil teste denne trenger du Python 2.7

Som test lastet jeg ned alle lunch bilder i februar,og virker i Windows.

from datetime import datetime
from time import mktime
from urllib import urlretrieve


for days in range(1,29):
    start_date = datetime(2014, 2, days)
    url = 'http://www.dagbladet.no/tegneserie/pondusarkiv/serveconfig.php?date={}&strip=lunch'\
    .format(int(mktime(start_date.timetuple())))
    urlretrieve(url, '{}.gif'.format(str(start_date).split()[0]))

Edit:ja så nå at at este hadde noe samme stilen :sleep2:

Endret av snippsat
Lenke til kommentar

 

urllib funker nok helt fint, det er bare å gjøre det. Jeg er ikke så kjent med python til slikt (da jeg har, du vet, wget).

 

urlllib er greit til dette ja,jeg bruker så si aldri wget i Python.

Man trenger ikke wget i Python og har sine bakedeler som nevt ikke kryssplateform.

Nå ville jeg helst brukt Request,som er mer moderne enn urllib.

 

Viss du vil teste denne trenger du Python 2.7

Som test lastet jeg ned alle lunch bilder i februar,og virker i Windows.

from datetime import datetime
from time import mktime
from urllib import urlretrieve


for days in range(1,29):
    start_date = datetime(2014, 2, days)
    url = 'http://www.dagbladet.no/tegneserie/pondusarkiv/serveconfig.php?date={}&strip=lunch'\
    .format(int(mktime(start_date.timetuple())))
    urlretrieve(url, '{}.gif'.format(str(start_date).split()[0]))

Edit:ja så nå at at este hadde noe samme stilen :sleep2:

 

 

 

Hei,

Aldri prøvd python før, men lastet det ned og kjørte koden din.

Fikk 29 like striper med forskjellig filnavn :) (Noe jeg faktisk er ganske imponert over)

Lenke til kommentar

Vel, programmet er ganske lite fleksibelt. Legg merke til at du der må spesifisere antall dager i en måned, hvilken måned og starte fra 1 etc.

 

Ja, jeg la merke til det. Og det er ingen problem for meg.

 

MEn det var pussig at jeg fikk 29 akkurat like filer når jeg satt januar som måned også (samme stripene som fra februar)

Lenke til kommentar

 

Vel, programmet er ganske lite fleksibelt. Legg merke til at du der må spesifisere antall dager i en måned, hvilken måned og starte fra 1 etc.

 

Ja, jeg la merke til det. Og det er ingen problem for meg.

 

MEn det var pussig at jeg fikk 29 akkurat like filer når jeg satt januar som måned også (samme stripene som fra februar)

 

 

jeg tror ikke Dagbladet har alle stripene der. Når man går et bestemt antall dager tilbake i tid vil alle stripene bare peke til den samme. 1-3 mars vil også gi denne stripen. Mens etter dette går det fint. (Stripe 1066 er altså den tidligste tilgjengelige)

Endret av etse
  • Liker 1
Lenke til kommentar

 

 

Vel, programmet er ganske lite fleksibelt. Legg merke til at du der må spesifisere antall dager i en måned, hvilken måned og starte fra 1 etc.

 

Ja, jeg la merke til det. Og det er ingen problem for meg.

 

MEn det var pussig at jeg fikk 29 akkurat like filer når jeg satt januar som måned også (samme stripene som fra februar)

 

 

jeg tror ikke Dagbladet har alle stripene der. Når man går et bestemt antall dager tilbake i tid vil alle stripene bare peke til den samme.

 

 

Ja, men du sa at du fikk lastet ned alle fra februar? (2014 antar jeg)

Lenke til kommentar

 

Ja, men du sa at du fikk lastet ned alle fra februar? (2014 antar jeg)

 

Sa jeg det? I så fall må jeg ha blingsa. Det funker fint for mars.

 

Edit: snippsat sa han klarte å laste ned alle for februar - men han må bare ha sett fort over og ikke obsertvert at det var samme stripe.

Endret av etse
  • Liker 1
Lenke til kommentar
Edit: snippsat sa han klarte å laste ned alle for februar - men han må bare ha sett fort over og ikke obsertvert at det var samme stripe.

 

Ja testet for mars,tenkte at det var arkivert lenger tilbake enn 3 mars.

Sorry for det,da blir det sånn.

for days in range(3,20):
    start_date = datetime(2014, 3, days)

 

  • Liker 1
Lenke til kommentar

Fikk bare lyst å prøve litt jeg også.

#!/usr/bin/ruby
require 'date'
require 'httparty'

TMP_FOLDER = "~/tmp/"
URL_FORMAT = "http://www.dagbladet.no/tegneserie/pondusarkiv/serveconfig.php?date=%d&strip=lunch"
FILE_FORMAT = "%slunch%d.gif"
DAY_INTO = Date.today + 1
DAY_FROM = DAY_INTO - 7 # One week.

(DAY_FROM...DAY_INTO).each do |date_obj|
  date = date_obj.strftime("%s")
  url = URL_FORMAT % date
  file = File.expand_path(FILE_FORMAT % [TMP_FOLDER, date])
  File.open(file, "wb") do |file_obj|
    file_obj.write HTTParty.get(url).parsed_response
    puts "Woha! %s" % file
  end
end
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...