/ Forside/ Teknologi / Udvikling / Andet udvikling / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Andet udvikling
#NavnPoint
BertelBra.. 1370
natmaden 870
srhansen 670
_michael_ 510
katekismus 500
MatrixRev.. 500
molokyle 462
refi 370
Teil 328
10  pallebhan.. 320
Downloade en html-fil hver time?
Fra : MikeAir
Vist : 658 gange
20 point
Dato : 24-01-15 15:46

Hey Kandu-brugere,

Jeg står i den situation at jeg skal holde øje med udviklingen på et forum(antal views), og har derfor brug for at downloade websitet(altså bare en enkelt html-fil) hver time, automatisk....

Siden som skal downloades(www.lydmaskinen.dk) kan ses uanset om man er logget ind eller ej..

Er der en smart måde jeg kan planlægge/automatisere det, så jeg slipper for manuelt at gøre det hver time?

Det skal bruges til et bachelor projekt, så jeg ville være SUPER taknemmelig for alle former for input..

Vh
Mike

 
 
Kommentar
Fra : bentjuul


Dato : 24-01-15 16:33

Det er dette link http://www.lydmaskinen.dk/

Kommentar
Fra : MikeAir


Dato : 24-01-15 16:45

Ja, lige præcis..

Kommentar
Fra : mig-selv


Dato : 24-01-15 17:31

Du kan lave/ optage en Macro, kan ikke lige huske hvordan og hvorledes, men det er rimeligt nemt - det eneste problem? kan være ´tiden´.

https://www.google.dk/search?hl=da&source=hp&q=free+macro+program&gbv=2&oq=free+mac&gs_l=heirloom-hp.1.0.35i39j0l9.1997.6349.0.9017.8.8.0.0.0.0.94.703.8.8.0.msedr...0...1ac.1.34.heirloom-hp..0.8.703.VPdJ0ly9Jy0


Kommentar
Fra : mig-selv


Dato : 24-01-15 17:32
Kommentar
Fra : mig-selv


Dato : 24-01-15 17:52

Citat
holde øje med udviklingen på et forum(antal views),

Kan du ikke bare ´hakke´ dig ind på koden til den tæller.
Du kan også bare tage et billede, istedet for at hente siden ned, hvis det bare er tælleren du skal holde øje med - men stadig med et macro program.

Kommentar
Fra : MikeAir


Dato : 24-01-15 17:54

Jamen problemet er at den skal gøre det automatisk over en tidsperiode, så jeg slipper for at sidde og gøre det manuelt hver halve eller hele time..

Kommentar
Fra : Klaudi


Dato : 24-01-15 19:30

Du kan tage et skærm-skud hver XX minut med Siteshoter fra nirsoft!
http://www.nirsoft.net/utils/web_site_screenshot.html

Kommentar
Fra : EXTERMINATOR


Dato : 24-01-15 20:16

Lav et cronjob ala dette her:
Kode
0 * * * * wget http://www.lydmaskinen.dk


Så henter den index.html hver time og tilføjer et .1 .2 .3 .4 osv. efter de forskellige versioner den henter


Accepteret svar
Fra : EXTERMINATOR

Modtaget 20 point
Dato : 24-01-15 20:59

Nu kiggede jeg lige lidt i kildekoden til siden, antal views fremgår ikke, mon det er hvor mange der er online du er ude efter?

Hvis det er så ville jeg lave et lidt anderledes cronjob, ala dette her:
Kode
0 * * * * wget -q http://www.lydmaskinen.dk -O - | grep 'In total there are <strong>' >> test.txt

Så får du en fil der hedder test.txt hvor der er en (meget lang) linie for hver time med de tal du skal bruge


Kommentar
Fra : MikeAir


Dato : 24-01-15 21:25

Lyder præcist som det jeg leder efter.... Googlede mig lige frem til hvad et cronjob var, og det ser ud som om det er noget hvor man tilføjer automatiserede scripts til sitet? Kan det passe?

Mit problem er dog, at jeg ikke selv ejer websitet og derfor ikke selv kan ændre i koden på sitet.

(Har dog tilladelse fra ejeren til at bruge al information der ligger offentligt på forum'et i mit bachelor projekt)

Antal online brugere er en god ting at starte med ja - når jeg så har forstået konceptet kan jeg jo føre det videre til at gemme views på udvalgte topics.

Men kan jeg lave sådan et cronjob uden at ændre i koden på sitet? Og evt. køre det fra min egen computer eller webserver(har et domæne med php installeret f.eks.)?

Kommentar
Fra : MikeAir


Dato : 24-01-15 21:40

Okay - har netop fundet ud af at jeg bare kan køre det fra kommandoprompt'en(terminal på mac)
http://www.maclife.com/article/columns/terminal_101_creating_cron_jobs

- Men hvor bliver filen med mine resultater så gemt henne?

Kommentar
Fra : MikeAir


Dato : 24-01-15 22:34

Har fundet ud at både at åbne editoren, lave cronjobs, og hvor filen bliver gemt...
Eneste problem er, at den fil der bliver gemt når jeg bruger nedenstående kode, er helt tom..

Kode
0 * * * * wget -q http://www.lydmaskinen.dk -O - | grep 'In total there are <strong>' >> test.txt


Kommentar
Fra : EXTERMINATOR


Dato : 24-01-15 23:13

Ok, du er nået langt
Nu kører jeg ikke OS X men Mint så bær over med mig hvis nogen kommandoer ikke findes.

Åbn terminal --> skriv: wget -q http://www.lydmaskinen.dk og tryk på enter.
Læs indholdet af den hentede fil: less index.html
Hvis du kan læse selve html filen så går vi videre.

I terminalen skriver du nu: grep 'In total there are <strong>' og så skulle den gerne vise den linie du er interesseret i.


Når du tester cronjob kan du jo lave det om til at hente hvert minut til du er sikker på at det virker, du skal bare lave 0 om til en stjerne.
Altså * * * * * wget -q http://www.lydmaskinen.dk -O - | grep 'In total there are <strong>' >> test.txt


Kommentar
Fra : EXTERMINATOR


Dato : 24-01-15 23:41

Citat
wget -q http://www.lydmaskinen.dk og tryk på enter.

Måske vi lige skulle verificere at filen rent faktisk eksisterer:
ls i* og enter
Citat
Læs indholdet af den hentede fil: less index.html


Kommentar
Fra : MikeAir


Dato : 25-01-15 00:06

Efter at have googlet lidt mere finder jeg ud af at wget hedder curl på mac, og jeg har så fået den til at lave en htmlfil som den opdaterer hvert minut..

Kode
*/1 * * * * curl -r http://www.lydmaskinen.dk/index.php >> HTMLFIL.Html


den sidste del, som blot henter den linje jeg er interesseret i:
Kode
-O - | grep 'In total there are <strong>'


Virker dog ikke på mac.. og jeg har ret svært ved at finde en mac-udgave af den...

Du har vel ikke en idé til hvordan jeg kan adskille hver "snapshot", så jeg kan importere dem i et program som SPSS eller excel, så jeg kan arbejde videre med dem som uafhængige observationer?

og fedt du gider hjælpe!

Godkendelse af svar
Fra : MikeAir


Dato : 25-01-15 00:07

Tak for svaret EXTERMINATOR.

Kommentar
Fra : MikeAir


Dato : 25-01-15 00:36

Hvis blot jeg kan få den til at adskille hver "download" med en ny linje, så er jeg faktisk helt i mål..

Kommentar
Fra : EXTERMINATOR


Dato : 25-01-15 01:03

Citat
finder jeg ud af at wget hedder curl på mac

Ikke helt rigtigt, curl er lidt noget andet end wget men her er det nok ligemeget.

Citat
Virker dog ikke på mac.. og jeg har ret svært ved at finde en mac-udgave af den...

grep findes helt sikkert på mac.

Du skriver: -O - | grep 'In total there are <strong>' som er lidt fra wget og næste kommando grep blandet i et.

Det jeg skrev var i dette format:
[Kommando1] Pipe [Kommando2] uddatatil [filnavn]
[Kommando1] | [Kommando2] >> [filnavn]

Kommando1 = det vi skal hente (med curl)
kommando2 = vi bearbejder det hentede (med grep)
Filnavn = vi gemmer det vi har bearbejdet

Du kan læse om grep her: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/grep.1.html

Det vi gør med grep er at finde den linie i kildekoden der indeholder teksten In total there are <strong>

Citat
Du har vel ikke en idé til hvordan jeg kan adskille hver "snapshot", så jeg kan importere dem i et program som SPSS eller excel, så jeg kan arbejde videre med dem som uafhængige observationer?

Kender intet til SPSS men med excel er det nemt, jeg giver dig et lille hint.
Hvis du laver tricket med et cronjob vil en OS X version der kører hvert minut se sådan her ud:
Kode
* * * * * curl --silent "http://www.lydmaskinen.dk/index.php" | grep 'In total there are <strong>' >> HTMLfil.txt


Åbn filen med excel og lav et par formler der kan finde de rigtige data, med grep får du en linie pr kørsel.

Du skrev: */1 * * * * curl -r http.....Ret morsomt. Første stjerne står får hvert minut så du behøver ikke at tilføje /1 (som også er hvert minut)
Havde du tilføjet f.eks /5 så der havde stået */5 * * * * så havde det betydet at den skulle køre hvert 5. minut.
Første stjerne = minut
Anden stjerne = time
Tredie stjerne = dato
Fjerde stjerne = måned
Femte stjerne = ugedag

Kommentar
Fra : MikeAir


Dato : 25-01-15 01:37

Grunden til */1 var fordi jeg læste i en guide på en af de utallige googling'er jeg har lavet idag..

Men TUSIND tak! Har lige kørt koden, og det virker perfekt, så jeg nu kan gå igang med at lave statistik på udviklingen over tid!

Kommentar
Fra : EXTERMINATOR


Dato : 25-01-15 01:40

Kode
* * * * * curl -s http://www.lydmaskinen.dk/index.php >> HTMLFIL.txt


> = opret/overskriv
>> = opret/tilføj

Så ovenstående burde hente hele siden (alle 4-500 linier) og tilføje dem til HTMLFIL.txt
Så kan du senere deleden ved at første linie altid er <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Så hver gang du når til den linie er det et nyt datasæt

Men det er nu stadig nemmere at bruge grep hvis det bare er online brugere du skal bruge. det er noget nemmere at håndtere i excel


Kommentar
Fra : MikeAir


Dato : 25-01-15 14:18

Super fedt!

Kan man få grep kommandoen til at hente et bestemt linje-nummer?

Hvis jeg nu vil hente antal views, fra en tabel hvor koden til hver række/kolonne minder så meget om hinanden at den ikke vil kunne kende foreskel på dem..

Hvis jeg for eksempel gerne vil holde øje med udviklingen i antal posts under "blogs" på forsiden:
http://www.lydmaskinen.dk/index.php

Den information gemmer sig på linje 334 i kildekoden, men da den er en del af en tabel med de samme resultater vil cron job'et jo nok ikke kunne kende foreskel.....

Kommentar
Fra : EXTERMINATOR


Dato : 25-01-15 15:48

Citat
Kan man få grep kommandoen til at hente et bestemt linje-nummer?

grep er en søgefunktion der kan finde tekst.
Du skal nok hellere bruge sed til det.
Kode
* * * * * curl --silent "http://www.lydmaskinen.dk/index.php" | sed -n 334p >> HTMLfil.txt


Problemet er så at linie 334 er denne her:
Citat
<td class="row2" align="center" nowrap="nowrap">


Er det antal tråde du er efter er det sed -n 332p
Er det antal indlæg så er det sed -n 333p

Der er et grundlæggende problem med at gøre det på den måde, hvis nu der tilføjes noget til siden eller ændrer en lille smule på opsætningen, så får du ikke de data du regner med.
Nu ligner det ikke lige noget der ændrer sig ret tit eller ret meget så mon ikke det går.

Kommentar
Fra : EXTERMINATOR


Dato : 25-01-15 16:12

Nåe ja, hvis du vil have begge linier så kan du naturligvis også det.
sed -n 332,333p

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177409
Tips : 31962
Nyheder : 719565
Indlæg : 6407776
Brugere : 218874

Månedens bedste
Årets bedste
Sidste års bedste