Spletna stran v lokalno datoteko

Rad bi avtomatiziral shranjevanje spletne strani v lokalno datoteko.
Primer:
firefox https://www.blabla.si/nekaj/ > test.html ali .txt
Po tem ukazu dobim:
bash: test.html: Permission denied
Tudi, če uporabim sudo ne pomaga! Dovoljenje zavrnjeno
Kako rešiti zadevo?

Komentarji

  • Uporabi 'wget' in bash :)

    nato če bi to rad 'avtomatiziral' daš bash skript v cron in določiš da se zažene na X -minut/ur/dni/itn.
  • CrazyLemon je dejal/-a:
    Uporabi 'wget' in bash :)

    nato če bi to rad 'avtomatiziral' daš bash skript v cron in določiš da se zažene na X -minut/ur/dni/itn.
    Sem poskusil naslednje in ista zgodba :(
    wget https://www.blabla.si/nekaj/ > test.html ali .txt
    bash: test.html: Permission denied

    Če prav razumem z wget dol potegneš datoteko, ki je na voljo. Jaz bi pa rad shranil spletno stran, ki ima neke podatke!
    Sedaj to stran odprem v firefoxu. Če me nekaj dni ni pri kalkulatorju pa imam odprtih x zavihkov.
    Rajši bi imel podatke v datoteki!
  • Kakšne podatke? Tukaj lahko dol potegneš samo statično stran in elemente.

    In to kar ti počneš z wget se v bistvu ne počne (preusmerjanje izhoda). wget sam posebi prejme vsebino z urlja... ni potrebe po preusmerjanju v datoteko. Če želiš poimenovat po svoje pa uporabi -O datoteka.neki. Anyway wget ima ogromno možnosti, gugl it :)

    Drugače pa obstajajo tudi zaznamki ane :D ker shranjevanje na disk je zelo nesmiselno :)
  • ja, če ni skrivnost bi bilo dobro vedeti katera spletna stran in kateri podatki.
  • dusang Član
    uredil/-a 9. September, 2015
    CrazyLemon je dejal/-a:
    Kakšne podatke? Tukaj lahko dol potegneš samo statično stran in elemente.

    Drugače pa obstajajo tudi zaznamki ane :D ker shranjevanje na disk je zelo nesmiselno :)
    Podatki/cene na strani se spremenijo vsakih pet minut. Recimo kot tečajna lista!

    V gnome-schedule imam: export DISPLAY =:0 && firefox spletna stran
    Lahko namesto v DISPLAY gre v datoteko?
  • Potem pa res nima smisla shranjevanje na disk.. ker bodo podatki zastareli ko si jih boš ogledal.
  • R33D3M33R Član
    uredil/-a 9. September, 2015
    wget ti bo prejel statično izvorno kodo spletne strani in jo shranil v datoteko. Statično pomeni: brez podatkov vstavkov, brez sprememb, ki bi jih naredil javaScript in podobno. Če se stran dinamično spreminja po izpisu ogrodja HTML, teh sprememb ne boš mogel shraniti z wget.
  • tečajna lista se spreminja dnevno.

    ok torej nek spreminjajoči podatek na spletu bi imel na disku mogoče za potrebe kakšne časovne analize? to bo možno če stran omogoča kak izhod tega podatka (recimo, da ti stežnik sam pošlje potreben podatek ali pa da ima kakšno možnost zunanjega dostopa do tega podatka). če ne pa res bolj težko.
  • Hvala za vse namige. Sedaj sem uspel z wget shraniti stran v datoteko, ki jo potem pravilno vidim v firefoxu.
    Gre za statistične podatke, ki jih želim imeti za poznejšo uporabo.

    Odgovor Permission denied sem dobil, ker nisem bil v imeniku, kjer bi lahko zapisal podatke! :(

    Delujoč ukaz:
    wget -O imedatoteke_$(date "%+F").html http://neka.stran.si/nekaj

    Problem permission denied se je zgodil, ker nisem bil v imeniku kjer bi lahko zapisal podatke :(
  • Sedaj so to stran spremenili in podatki se obnavljajo dinamično. Torej z Wget dobim samo header html strani.
    Poskusil sem z Firefox vstavkom Shelve, ki bi deloval odlično, če bi mu lahko povedal, da naj zapiše stran v datoteko 10 sekund pozneje kot se odpre!!!
    Kakšna ideja?
  • dusang Član
    uredil/-a 10. May, 2016
    Ob neštetih poskusih sem uspel sestaviti skripto, ki mi odpre želejno stran in naredi potrebno.
    Ko želim isto skripto pognati z gnome-schedule, se skripta sicer izvede, vendar ne požene firefox programa.

    test.sh
    #!/bin/bash

    # Zaženem Firefox in poskusim odpreti stran
    echo Zaženem Firefox >> Kontrola.log
    firefox www.blackle.com

    # zapišemo čas v datoteko
    echo $(date) >> Kontrola.log
    echo Počakam 20 sekund

    # Počakam 20 sekund
    echo Čakam 20 sekund >> Kontrola.log
    sleep 20

    # zapišemo čas v datoteko
    echo $(date) >> Kontrola.log

    # zaprem zavihek od Firefoxa
    echo Zapiram zavihek Firefoxa >> Kontrola.log
    wmctrl -a firefox
    xdotool key Ctrl+w

    # Dodam prazno vrstico v log datoteko
    Kontrola.log
    Zaženem Firefox
    tor maj 10 17:25:01 CEST 2016
    tor maj 10 17:25:21 CEST 2016
    Zapiram zavihek Firefoxa

    Zaženem Firefox
    tor maj 10 17:30:01 CEST 2016
    Čakam 20 sekund
    tor maj 10 17:30:21 CEST 2016
    Zapiram zavihek Firefoxa
    crontab -l
    */5 * * * * /bin/bash /home/userx/Sistem/test.sh # JOB_ID_7

    Prebrskal sem že vse mogoče pa ne najdem rešitve. Vsak namig bo dobrodošel!






  • Poskusi z DISPLAY=:0 pred 'firefox'. Pa upam da je to crontab entry uporabnika in ne roota.
  • dusang Član
    uredil/-a 27. May, 2016
    CrazyLemon je dejal/-a:
    Poskusi z DISPLAY=:0 pred 'firefox'. Pa upam da je to crontab entry uporabnika in ne roota.
    Ja to je crontab uporabnika!
    Tudi to imam sedaj v skripti.
    Če skripto poganjam vsako uro, potem se izvede, ko pa nastavim naj se izvede točno ob določenem času od ponedeljka do petka, pa zadeva zataji
    #!/bin/bash

    # Zaženem Firefox in poskusim odpreti stran
    echo Zaženem Firefox >> Kontrola.log
    export DISPLAY=:0
    firefox www.blackle.com

    # zapišemo čas v datoteko
    echo $(date) >> Kontrola.log
    echo Počakam 20 sekund

    # Počakam 20 sekund
    echo Čakam 20 sekund >> Kontrola.log
    sleep 20

    # zapišemo čas v datoteko
    echo $(date) >> Kontrola.log

    # zaprem zavihek od Firefoxa
    echo Zapiram zavihek Firefoxa >> Kontrola.log
    wmctrl -a firefox
    xdotool key Ctrl+w

    # Dodam prazno vrstico v log datoteko
    echo >> Kontrola.log

    Ni mi jasno zakaj se včasih nastavljeno opravilo izvede, včasih pa ne!

    dusan@ThinkPad:~$ crontab -l
    0 */3 1-5 * * /bin/bash /home/dusan/Sistem/cenik.sh # JOB_ID_13
    41 * * * * /home/dusan/Sistem/test.sh # JOB_ID_14
    dusan@ThinkPad:~$ grep CRON /var/log/syslog
    May 27 13:41:01 ThinkPad CRON[9105]: (dusan) CMD (/home/dusan/Sistem/test.sh # JOB_ID_14)
    May 27 13:41:22 ThinkPad CRON[9104]: (CRON) info (No MTA installed, discarding output)
    May 27 14:17:01 ThinkPad CRON[10192]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
    May 27 14:41:01 ThinkPad CRON[10892]: (dusan) CMD (/home/dusan/Sistem/test.sh # JOB_ID_14)
    May 27 14:41:22 ThinkPad CRON[10891]: (CRON) info (No MTA installed, discarding output)
    May 27 15:17:01 ThinkPad CRON[11954]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
    May 27 15:41:01 ThinkPad CRON[12628]: (dusan) CMD (/home/dusan/Sistem/test.sh # JOB_ID_14)
    May 27 15:41:21 ThinkPad CRON[12627]: (CRON) info (No MTA installed, discarding output)
    May 27 16:17:01 ThinkPad CRON[13899]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


    Skripta test.sh se izvede, cenik.sh pa ne! Cenik.sh bi se moral izvesti ob 15:00.  Tudi ko sem imel nastavljenega naj se izvede ob 9:32 vsak dan od ponedeljka do petka se ni zgodilo nič.

    Jezi me, ker sem bil odsoten in sem upal, da me bo cenik čakal na disku!

  • CrazyLemon Skrbnik
    uredil/-a 27. May, 2016
    To kar si ti napisal pomeni "Izvedi cenik.sh od prvega do petega maja na vsake tri ure". :wink: 
     minute (m), hour (h), day of month (dom), month (mon), and day of week (dow)
    # m h  dom mon dow   command
    Torej..
    0 15 * * 1-5 /bin/bash /home/dusan/Sistem/cenik.sh # JOB_ID_13


  • CrazyLemon je dejal/-a:
    To kar si ti napisal pomeni "Izvedi cenik.sh od prvega do petega maja na vsake tri ure".
    wink

    Hmmmmm bom moral kupiti močnejša očala :( Ali pa vključiti možgane na večjo intenzivnost :s

    Hvala za popravek! Upam, da bo sedaj delovalo.

    Kako pa pridem iz okna 'navedi' ?
  • Tako da klikneš izven ali pa preklopiš na HTML način </> in nato tam urediš, nadaljuješ, skočiš v novo vrstico pa greš nazaj v WYSIWYG način.
  • CrazyLemon je dejal/-a:
    Tako da klikneš izven ali pa preklopiš na HTML način </> in nato tam urediš, nadaljuješ, skočiš v novo vrstico pa greš nazaj v WYSIWYG način.
    Tako sem tudi jaz razmišljal, pa nikakor nisem mogel klikniti izven navedka. Tudi ko sem preklopil v HTML način in nato v WYS sem padel nazaj v okno 'navedi'.  Zato pa sem postavil vprašanje.
    V današnjem odgovoru pa delo kot mora. :)
Za komentiranje se prijavite ali pa se vpišite.