Offline backup foruma
(1 korsinik/a gleda/ju temu) (1) Gost

Offline backup foruma


14.01.2011 | 22:02
Postoji jedan forum koji se ubrzo gasi i miče sa servera, a velika bi šteta bila da ti postovi propadnu.

Treba mi neki alat kojim bih spremio sve te postove za offline pregledavanje u budućnosti, budući da se radi o nekih 2000 stranica po 20ak postova i ručno nema smisla.
Tema zaključana.
14.01.2011 | 23:39
Pretpostavljam da je forum u mysql bazi? Samo napravi mysqldump u neki file, i spremi file. Kasnije taj file možeš importirati u drugu mysql bazi i raditi što hoćeš. Ako imaš na raspolaganju phpmyadmin možeš iz njega exportirati u sql dump ili ravno u CSV file.
Tema zaključana.
15.01.2011 | 00:29
Nažalost, nemam pristupa bazi, ja sam tamo samo forumaš
Tema zaključana.
15.01.2011 | 03:15
Hm...o kojem je tocno forumu rijec? Koja skripta ga pogoni?
Tema zaključana.
15.01.2011 | 10:11
A misliš da ne može jednostavnije? Ono - nekim softverom tipa Webzip sa windowsa?
Tema zaključana.
15.01.2011 | 13:52
Sljedeći prijedlog bi mi bio da proba sa WebDevilom npr...
Tema zaključana.
15.01.2011 | 15:08
@Riba - ovo je forum tinyurl.com/67ndk9z

@Smayoo - probao sam sa Sitesuckerom al nije uspjelo
Tema zaključana.
15.01.2011 | 17:32
Evo mi je palo na pamet slijedeće, obzirom da svaka stranica foruma (od njih 2037) ima link "link&p=i" gdje je i brojač od 1 do 2037, spremiti svih tih 2037 linkova u tekstualnu datoteku što sam i napravio.

Zatim napraviti nekakvu skriptu koja bi radila slijedeće:

za svaku liniju teksta (X) u datoteci linkovi.txt
    pokreni Safari
    otvori link iz linije teksta
    "save page as web archive" sa imenom "RNK-X"

Nebih imao linkabilnost između samih stranica ali bi barem postovi bili sačuvani.
Tema zaključana.
15.01.2011 | 18:30
To bi išlo. Đipi je majstor Apple Scripta, vjerujem da on tu skriptu može isisati iz malog prsta u sekundi. S tim da bi bilo bolje da ne snima kao web archive, nego kao HTML with images, i to u takvo stablo da se zadrži linkabilnost.
Tema zaključana.
17.01.2011 | 13:50
Alat za to je wget! Autor je naše gore list, napisao softver dok je još bio student na FER-u, a softver je toliko poznat da su ga spomenuli u filmu "Društvena mreža"!

Postoji Darwin port wgeta za OS X.


Ako postoji popis svih tih linkova na jednoj stranici, ili su međusobno povezani (next, previous), rekurzivni poziv
wget -r stranica sajta



Za osnovne informacije
www.ehow.com/how_2061543_use-wget-retrieve-web-pages.html
a za više Google!
Tema zaključana.
17.01.2011 | 15:10
a jel mi wget hvata i slike isto?
Tema zaključana.
17.01.2011 | 15:19
Skida cijelu stranicu sa neke domene, ako ima dozvole za to (ako postoji neki sustav za autoriziranje, onda se treba poigrati sa cookiejima).

Tako da normalno skida i slike, ako su one na osnovnom siteu. Ako su polinkane sa Flickera, Picasse ili nešto treće, to neće skinuti, ali će na stranici koja ti je lokalno snimljena ostati link, i nećeš ni skužiti da nije skinuto.
Tema zaključana.
17.01.2011 | 16:44
BTW, u OS X već imaš po defaultu curl koji je funkcionalno gotovo istovjetan wgetu.
Tema zaključana.
17.01.2011 | 20:44
cURL, iako je u globalu puno bolji alat, nema podršku za rekurzivno skidanje, pa će ili morati skriptirati, ili probati wget..
Tema zaključana.
17.01.2011 | 21:48
Evo mi je palo na pamet slijedeće, obzirom da svaka stranica foruma (od njih 2037) ima link "link&p=i" gdje je i brojač od 1 do 2037, spremiti svih tih 2037 linkova u tekstualnu datoteku što sam i napravio.

Ne moraš spremati linkove u datoteku, s obzirom da se mijenja samo sufix stringa. AppleScript rješenje je sljedeće - i prilično je prljavo:

set urlBase to "http://www.index.hr/forum/default.aspx?q=t&idf=65&idt=110115&p="
set fromPage to 1
set toPage to 2037

set currentPage to fromPage

tell application "Safari"
  activate
  
  repeat while (currentPage ≤ toPage)
    set the clipboard to (currentPage as text)
    set urlFinal to urlBase & currentPage
    set URL of document 1 to urlFinal
    delay 3
    
    tell application "System Events"
      tell process "Safari"
        click (menu item "Save As…" of menu 1 of menu bar item "File" of menu bar 1)
        delay 1
        keystroke "v" using {command down}
        click (button "Save" of sheet 1 of window 1)
      end tell
    end tell
    
    set currentPage to currentPage + 1
  end repeat
end tell

Prva 3 reda postavljaju varijable. Prvi red je URL, ali BEZ sufiksa koji označava stranicu. Sljedeća dva reda su oznake stranica (od koje i do koje). Postavio sam ih na aktualan raspon, ali preporučam ti da toPage smanjiš na, recimo, 2 dok budeš testirao skriptu. Kad se uvjeriš da radi ono što ti treba, digni na 2037 i pusti ga da žvače - potrajat će.

currentPage pamti na kojoj smo stranici. Potom se obraćamo Safariju i aktiviramo ga. VAŽNO: prije pokretanja skripte QUITAJ Safari. Skripta će ga sama dignuti i to će biti garancija da prljavi dio koda (koji ide preko System Eventsa) radi ispravno (barem s aktualnim Safarijem).

Kreće petlja koje sa ponavlja za N stranica u rasponu od fromPage do toPage. U clipboard spremamo, kao tekst, broj aktualne stranice (currentPage). Potom generiramo URL (dodajemo sufiks baznom URLu). "set URL" se obraća Safariju i tjera ga da prikaže konkretan URL. Ovdje ujedno počinju problemi - AppleScript nema pametan način za provjeriti da li je Safari zahvatio sve potrebne podatke pa se rješenje svodi na čekanje X sekudi (ovdje konkretno 3 kao "delay 3" ), kako bi Safari imao 3 sekunde za skinuti, formatirati i prikazati stranicu. Ako imaš sporiju konekciju ili ako iz bilo kojeg razloga Safari ne može prikazati stranicu za 3 sekunde, povećaj ovaj "delay 3" na "delay 5", "delay 10" ili koliko god mu je vremena potrebno. I nadaj se da će odabrana brojka držati vodu za svih 2037 stranica.

Nakon što smo prikazali stranicu, emuliramo input od strane usera (jer je Safari vrlo ograničeno skriptabilan, kao i Preview aplikacija - mrmlj!). System Eventsima kažemo da klikću po Safariju. I to tako da prvo kliknu na "Save As..." pa pričekaju sekundu (jer se GUI mora iscrtati!). Fokus Save panela je na imenu pa u polje za ime fajla pejstamo sadržaj clipboarda (brojke koje odgovaraju rednom broju stranice na webu) - to radi ovaj "keystroke...". Nakon toga "klikćemo" na "Save".

Da bi ovo gore radilo moraš se pobrinuti za 2 sitnice: digni Safari i u njemu bilo koju stranicu. Odi na Save As. Odaberi Web Archive kao format za snimanje, odaberi GDJE će snimiti arhivu i snimi je. Te postavke (format i destinacija) će skripta koristiti kao default - snimat će web archive i u folder koji si odabrao u ovom koraku. To je najbrži način da sve sejvove potrpaš u željeni folder, a da ne zakompliciramo skriptu.

Petlja završava uvećavanjem brojača stranice.


E, da... još jedna bitna sitnica - da bi skriptanje GUIja radilo, moraš u System Preferences/Universal Access UKLJUČITI "Enable access for assistive devices". Moguće da je defaultno uključeno, ali svakako provjeri.


@Riba: vezano uz cURL - da, može se, ali to ne preporuča ni cURLov FAQ.
Tema zaključana.
18.01.2011 | 18:23
Bravo Djipi kućo stara!! Radi ko sat. Nemam doduše linkabilnost među stranicama, al to mi nije prebitno, najbitnije je da ću moć pristupit svemu.

@stajp - probah Wget al nažalost ne fercera mi. kako se stranica genreira aspx-om, to mi skine file bez ekstenzije a kad mu dodam ".html" dobijem "error in forum request"
Tema zaključana.
Moderatori: Bertone
  • Stranica:
  • 1

Prijava