Grepanje cijele web stranice
(1 korsinik/a gleda/ju temu) (1) Gost

Grepanje cijele web stranice


11.05.2009 | 05:28
Pozdrav, trebao bi uciniti slijedece, nekako najradije pomocu bash skripte, ali nikako ne mogu da nadjem verziju Lynxa za Maca pa da se poigram s time Ima tko link za DL?
Uglavnom, trebam uciniti slijedece:

Ucitati stranicu 1
Spremit sadrzaj stranice (XML) u fajl
Ucitati stranicu 2
Spremit (pridodati) sadrzaj stranice (XML) u opet isti fajl
...
I tako do stranice 100...

Nakon sto sve te stranice spremim u taj fajl, moram grepati taj fajl... ali to znam kako cu i sto cu. Ali pokusavam neko integrirano rjesenje napraviti, pa nisam siguran da li cu moci sve u bashu slozit... mogu s AppleScriptom pozvati bash skriptu pretpostavljam?

Uglavnom, ako ima tko kakvu ideju, moze pomoc?

hvala!
bok!
11.05.2009 | 08:14
Ako već prijeđeš na Apple Script, onda možeš vjerojatno koristiti i Safari umjesto Lynxa, zar ne?
11.05.2009 | 11:43
Zapravo sam imao na umu nesto takvo, jer poanta je da konacna aplikacija radi na bilokojem Macu, a svaki Mac valjda ima Safari instaliran... no Lynx bas i ne

bok!
11.05.2009 | 12:21
Kada sam zadnji put gledao statistike pokazuju da je udio korištenja Safarija među Mac korisnicima preko 85%. Ostatak je Firefox uz par postotaka na "alternativce". Instaliran je na svakom Macu ako ga netko nije baš namjerno pobrisao.
11.05.2009 | 14:30
Bi li curl komanda pomogla?
11.05.2009 | 16:31
Evo napravio sam u AppleScriptu, poziva Safari, ucita stranicu, spremi je i tako po redu. Kad spremi sve poziva bash skriptu koja spoji to sve u jedno.

tell application "Safari"
	repeat with iteracija from 1 to 5
		set broj to iteracija
		tell document 1
			set glavniURL to "http://ws.audioscrobbler.com/2.0/?method=library.gettracks&api_key=b25b959554ed76058ac220b7b2e0a026&user=quadmachine&page=" & broj
			set URL to glavniURL
			delay 1
			save in "iSmetliste:Users:Mladen:Desktop:iTunes_projekt:XML:page  " & broj
		end tell
	end repeat
	do shell script "/Users/mladen/Desktop/iTunes_projekt/XML/citanje.sh"
end tell


bok!
11.05.2009 | 18:39
Evo napravio sam u AppleScriptu, poziva Safari, ucita stranicu, spremi je i tako po redu. Kad spremi sve poziva bash skriptu koja spoji to sve u jedno.

Znatiželje radi - što zapravo radi kompletan proces (za sad znamo da skida N stranica i prosljeđuje ih dalje na neku obradu)? Pretpostavljam da je moguće cjelovito AS rješenje pa kad već guram AS pristup, da pokušamo i u ovom slučaju.

I, usput, onaj "set broj to iteracija" služi nečemu ili je redundantan kao što se čini na prvi pogled (tamo gdje je trenutni "& broj" prošlo bi i "& iteracija").
11.05.2009 | 19:15
Kompletan proces je sinkronizacija last.fm-a i librarija iTunesa. Ovo je prvi korak u kojem dobivam XML sa kompletnik statistikama last.fm-a. Iduci korak je playcountove pjesama ubaciti u XML fajl na temelju kojega ce iTunes generirati bazu. Za to sam napisao bash skriptu... stavim je tu kasnije kad dodjem doma da vidis o cem se radi. Zasad sam sve rjesio, samo imam jedan problem, a to je sporost procesa, trebalo bi nekoliko dana skripti da ubaci sve podatke, jer se radi o iTunesovom XML-u od 240.000 linija... Mozda kad bi se pametnije napisalo brze bi islo...
Ugl, stavim kasnije vise detalja.

komentari??
bok!

ovo "set broj to iteracija" je ostalo od prije mislim... dok sam nest drugo pokusavao...

bok!
11.05.2009 | 19:40
Kompletan proces je sinkronizacija last.fm-a i librarija iTunesa.

Jednokratna "sinkronizacija" (import last.fm podataka u iTunes) ili nešto što bi se trebalo kontinuirano syncati (u smislu: kad se promijene podaci na last.fm, da se iTunes baza također apdejta)? Napominjem da ovo pitam kao ne-korisnik last.fma.

Ovo je prvi korak u kojem dobivam XML sa kompletnik statistikama last.fm-a.

Provjeravam ako sam shvatio prvi dio: podatke dobiješ kao seriju stranica koje skidaš preko browsera (jednu po jednu) i nakon toga spojiš u jedan fajl da bi kasnije parsao samo njega?

Ovo ima smisla dok debuggiraš i ako se radi import, a ne sync, međutim u slučaju synca samo gomilaš (nepotrebne) korake pa možeš postiću ubrzanje (nauštrb "sigurnosti") tako da parsaš dok "skidaš" i izravno apdejtaš iTunes bazu (ako uopće prethodno postoji). Naravno, to zahtjeva suvisli error checking, da stvar ne pukne na 99% (kao što obično biva kad se krene tim putem ).

Iduci korak je playcountove pjesama ubaciti u XML fajl na temelju kojega ce iTunes generirati bazu.

Ne kužim dio "generirati bazu": baš generirati ili samo apdejtati postojeće podatke?

Ugl, stavim kasnije vise detalja.

Ajde, baš me zanima što zapravo radiš i na koji način bi sve to skupa trebalo funkcionirati.
11.05.2009 | 22:16
Dakle poanta bi bila jednom upisati playcountove s last.fm-a u iTunes, dalje kako se pusta muzika u iTunesu updejtati ce se baza iTunesa (ugradjena funkcionalnost iTunesa jelte), a i scromblati na last.fm.

E sad, baza iTunesa se nalazi u jednom fajlu /korisnik/Music/iTunes Library. Taj fajl nije moguce editirati, ali ukoliko se taj fajl osteti, iTunes ponovo generira taj fajl odnosno bazu na temelju iTunes Library.xml-a, koji se nalazi u istom direktoriju.

Ja sam napravio jedan XML od podataka s last.fm-a, te sad trebam pokrenuti skriptu koja ce citati taj fajl od last.fm-a, te sukladno tome unositi podatke u iTunes Library.xml.

Skriptu sam napisao, moze se pogledati tu www.uti-zadar.hr/qm/nula1.txt

Medjutim, problem je sto se skripta jako sporo izvrsava, jer mi iTunes Library.xml ima preko 240.000 linija. Sad mozgam kako cu napisati tu skriptu pametnije da se ipak malo brze izvrsava.

Svaki savjet je dobrodosao

bok!
12.05.2009 | 12:59
Dakle poanta bi bila jednom upisati playcountove s last.fm-a u iTunes, dalje kako se pusta muzika u iTunesu updejtati ce se baza iTunesa (ugradjena funkcionalnost iTunesa jelte), a i scromblati na last.fm.

OK, dio s prijepisom playcountova iz last.fm u iTunes mi je jasan. I jednokratan je. Na što točno misliš pod "scromblati na last.fm"?

E sad, baza iTunesa se nalazi u jednom fajlu /korisnik/Music/iTunes Library. Taj fajl nije moguce editirati

Pa... nije baš "nemoguće". Taj fajl se može editirati preko iTunesa, koristeći AppleScript. Dakle, ako želiš promijeniti playcount neke pjesme (ili bilo što drugo), možeš to napraviti bez da petljaš po spomenutom XML-u.

Ja sam napravio jedan XML od podataka s last.fm-a, te sad trebam pokrenuti skriptu koja ce citati taj fajl od last.fm-a, te sukladno tome unositi podatke u iTunes Library.xml.

Skriptu sam napisao, moze se pogledati tu www.uti-zadar.hr/qm/nula1.txt

Medjutim, problem je sto se skripta jako sporo izvrsava, jer mi iTunes Library.xml ima preko 240.000 linija. Sad mozgam kako cu napisati tu skriptu pametnije da se ipak malo brze izvrsava.

Gledam skriptu. I vidim nekoliko potencijalnih "usporivača". Uvjerljivo najveći je prolazak kroz petlju. Za svaki redak u prvoj petlji ponavljaš komparaciju sa SVIM redovima druge petlje. Dva problema: ne bi ti uopće trebali biti zanimljivi pojedini redovi ulaznog fajla - ubrzat ćeš ako jednostavno provjeriš da li uopće ulaznu liniju ima smisla komparirati. Ako nema, preskačeš komparaciju tog retka. Drugi problem je što kad naiđeš na liniju koju treba komparirati, moraš proći cijeli izlazni fajl. Optimizacija drugog problema se može provesti prethodnim sortiranjem (najbolje oba fajla!) ili barem izlaskom iz petlje nakon što naiđe na ono što je tražila - prolaziti petlju do kraja bi imalo smisla samo ako očekuješ da komparacija može biti true više nego jednom.

Ne znam kako točno bash evaluira uvjete, ali sumnjiv mi je i "if" dio u kojem prvo provjeriš da li lajnaIn počinje sa "<key>Name" pa nekon toga provjeriš i da li su lajnaIn i lajnaDva jednake. Prva provjera (da li je Name) ima smisla van druge petlje (dakle, u prvoj) - ako nije Name, nema potrebe ulaziti u drugu petlju. Ako smo već ušli u drugu petlju, dovoljno je testirati samo drugi uvjet (da li je lajnaIn = lajnaDva). Pametan evaluator uvjeta (ponavljam da ne znam da li bash spada u tu kategoriju) drugi uvjet ne mora evaluirati ako prvi nije true (a zajednički je AND).

Cijeloj priči svakako ne pomaže ni čitanje/pisanje svih tih silnih linija u fajl, pogotovo ne u petlji.

Koliko se sjećam, bash nema mutable arrays - može samo stackati na vrhu ili pushati na početak. Što ti ne pomaže. Ali pomoglo bi da insert radiš u memoriji (dakle, presložiš array kako ti paše), a ne na disku.

Ako se problem fakat svodi samo na to da uzmeš playcountove iz last.fm xmlova i "korigiraš" one u iTunesima, AS ti definitivno može pomoći. Skineš pojedini XML, potražiš u njemu "identifikatore" (song/artist name) za svaku pjesmu, provjeriš (AS se obraća iTunesima) imaš li taj entry u iTunesima i ako imaš korigiraš njegov playcount. Nema pisanja XMLa na disk, nema spajanja u jedan fajl, nema bjesomučnog vrćenja petlji. Istina, trebat će i ASu "neko vrijeme" da to obavi, ali garantirano neće trajati danima (trajat će minutama, ovisno o tome koliko imaš pjesama).

A ako baš inzistiraš na tome da rekreiraš iTunesov XML, onda je praktičnije sve last.fm podatke prvo učitati i obraditi u privremenu bazu (može biti u memoriji, kao array) pa ih potom insertati u iTunesov XML. Konkretno: skidaš jedan po jedan last.fm XML, lociraš podatke koji ti trebaju (song/artist/playcount) i pišeš ih u array. Ovdje bi bilo praktično i sortirati array da buduću for petlju ne moraš vrtiti kroz cijeli array. Nakon toga otvaraš iTunesov XML, čitaš pojedini blok (možeš liniju po liniju), provjeriš za svaki song/artist imaš li match u arrayu (s obzirom da je sortiran, ne moraš prolaziti cijeli array!) i ako imaš, insertaš u blok, zapišeš u out fajl i nastaviš do kraja iTunesovog XMLa.
13.05.2009 | 01:34
Hehe, vidi se da nisi korisnik last.fm "Scrobblanje" je kad mi odsvira pjesma pa CoverSutra posalje to na last.fm, pa on to spremi u svoju bazu.

www.last.fm/download < sluzbeni Scrobbler

Uglavnom, nisam ja bas programer (kao sto se i vidi iz skripte koju sam napisao ), ali pokusat cu to malo doraditi na temelju tvojih savjeta tu, ali pokusat cu i koristeci AS to rjesiti.

Moram priznati (lako moguce da je placebo efekt lol), ali otkako sam na Macu stalno imam neke ideje, zelim nest stvarat, igrat se pisat skriptice i gluposti razne. Nije da to radim iz potrebe nego cisto iz znatizelje i zelje za ucenjem i moram priznati da mi se svidja

komentari??
bok!
14.05.2009 | 05:46
Pokusao sam ovo izvesti pomocu AppleScripta, i zbilja je mnogo lakse i brze, medjutim imam jedan drugi problem sada...

on run
	set theXML to parse XML "<?xml version=\"1.0\"?>
"
	tell application "iTunes"
		display dialog "Sacu da te uredim" buttons {"Cancel", "Deri..."} default button 2 with icon 1
	end tell
	repeat with iteracija from 1 to 150 by 3
		set pjesma to item 1 of XML contents of item iteracija of XML contents of theXML
		set i_playcount to iteracija + 1
		set playcount to item 1 of XML contents of item i_playcount of XML contents of theXML as integer
		set i_izvodjac to iteracija + 2
		set izvodjac to item 1 of XML contents of item i_izvodjac of XML contents of theXML
		tell application "iTunes"
			set musicLibrary to (get view of front browser window)
			set search_term to pjesma & " " & izvodjac
			set trazeno to (search musicLibrary for search_term only all)
			repeat with a_track in trazeno
				set played count of a_track to playcount
			end repeat
		end tell
	end repeat
end run


To je trenutni kod... ucitava XML pomocu dodatka za AppleScript LINK
Sada za pretrazivanje koristim ugradjenu funkciju od iTunesa, i radi jako brzo, ali ima problem.
Problem je taj sto nemogu definirati da pretrazuje samo Artiste i Songse. Dolazi do toga da mi nadje npr pjesmu "Toxicity" od SOAD-a, i cijelom albumu "Toxitcity" poveca playcount...

search musicLibrary for search_term only all, stavio sam ovako i dam mu da pretrazuje "imeIzvodjaca imePjesme", i to je najbolje sto mogu postici. Cini mi se da nije moguce pretrazivati po Artistu i Pjesmi, vec samo pojedinacno, ili sve skupa (sto ukljucuje i Album, pa dolazi do greske).

any ideas?

komentari??
bok!
14.05.2009 | 12:44
Sada za pretrazivanje koristim ugradjenu funkciju od iTunesa, i radi jako brzo, ali ima problem.
Problem je taj sto nemogu definirati da pretrazuje samo Artiste i Songse. Dolazi do toga da mi nadje npr pjesmu "Toxicity" od SOAD-a, i cijelom albumu "Toxitcity" poveca playcount...

search musicLibrary for search_term only all, stavio sam ovako i dam mu da pretrazuje "imeIzvodjaca imePjesme", i to je najbolje sto mogu postici. Cini mi se da nije moguce pretrazivati po Artistu i Pjesmi, vec samo pojedinacno, ili sve skupa (sto ukljucuje i Album, pa dolazi do greske).

Zanimljiv pristup, ali nepotrebno si zakomplicirao stvar. Probaj ovo:

tell application "iTunes"
  activate
  set pjesme to (every track of library playlist 1 whose name contains "Toxicity" and artist contains "SOAD")
  repeat with pjesma in pjesme
    display dialog (name of pjesma) as text
  end repeat
end tell

Display dialog u primjeru služi samo za debuggiranje. Unutar tog repeata možeš mijenjati playcount.
Moderatori: Bertone
  • Stranica:
  • 1

Vikalica™

Zadnja poruka: pred 4 sati, 29 minuta
  • miomika: na A1 ti samo pošalju na mail/sms ili putem aplikacije Moj A1 i to je to
  • rusty: Prije jedno 3 godine na Tmobile. u 22h navečer putem supporta jer se u protivnom trebalo ići u poslovnicu
  • VanjusOS: da li je netko isprobao funkciju konvertiranja SIM u e-SIM, i na kojoj mreži?
  • ZoPaj: ha ha, nisu li usbC isforsirali upravo radi štednji na punjačima:)
  • dpasaric: I bez punjača... :(
  • Borisone: Danas najavljeni novi iPad Pro, Vision Pro i MacBook Pro 14-inch. Sve s M5 procesorima (bez Pro i Max varijanti).
  • Air: Veliko priznanje Fedora našem Filipoviću - pozvao ga je na boksački meč.
  • Air: Taj pc laptop je imao cijenu cca 800 eura što nije malo
  • Air: Mislio sam da su se malo pomakli u tom smjeru, ali jok
  • Air: trackpad je... hm...
  • Bertone: Rekao sam ti da je kvaliteta izrade loša, ali sam CPU je brži od CPU-a iz MBP 2014/2015,... stavi na njega LinuxMint pa ćeš vidjeti da nije spor ;)
  • Air: Moj MBP 2014 je ferari / Bentley za usporedbu...
  • Air: Moj utisaK da sam ga platio 100-150 eura plakao bi što nisam dao još 150 za MBP 2014 - 2016 godište.
  • Air: Samo da javim, na kraju sam dobio laptop od frenda. Nije htio čuti za nikakve pare. Skro smo se posvađali ali eto pametniji popušta ;)
  • hal9000: Steve Jobs, vrati se! Sve ti je oprošteno! [link]
  • hal9000: Kakva pizdarija: [link]
  • drpongrac23: Meni onaj sa uzorkom krzna leoparda
  • hal9000: @Bertone: Da, jedan od najdražih Wallpapera ikad.
  • Bertone: 5k [link] i 6k [link]
  • Bertone: ... kojeg rado koristim
  • Bertone: Na stranu sad brzina i ispeglenost OS-a ali mom oku je najljepši i najugodniji bio Mac OS X 10.4 Tiger, a nativni Aqua wallpaper mi je i dan danas jedan od nesmetajućih wallpapera.
  • Air: RIP otišao je i HALID...
  • drlovric: Ja nekako vjerujem da ovo nije bilo jos uvijek ni planirano, vec su to sfusali na brzinu da izadje prije vremena. Cisto da malo zamaskiraju AI blazamu. Da se pise o necemu drugome. NIkakvu konkretnu vrijednost korisnici nisu dobili ovom promjenom.
  • CoffeePod: @drlovric Malo je reć da su se za*ebali. Prezentacija na WWDC je izgledalja lijepo, ali to su bili cherry pickani trenutci, i sve je bilo uvećano. Liquid Glass ne funkcionira dobro na našim malim ekranima.
  • CoffeePod: @hal9000 Probao ga na M2 Airu od djevojke, jer se njoj svidio dizajn sučelja. Ukratko, laptop je vidno usporio sa animacijama, performanse su zagušene. Stvarno je istina da treba pričekati tek idući release kada se ovako velike promjene naprave. Što se mene tiče, svi xOS26 su i dalje Beta.
  • hal9000: @Yonkis: :D :D :D
  • drlovric: .1 bete vec doziraju transparentnost. Skontali su da su na puno mjesta pretjerali, pa se to sada mijenja sa frosty staklom :)
  • Yonkis: hal9000: pretvorio sam se u uho
  • hal9000: Novi dizajn novog MacOS-a je TRAGEDIJA!
  • CoffeePod: Samo se sjetim njegove izjave "We don't ship junk!"
  • CoffeePod: Mene iskreno zanima reakcija Jobs na Tahoe26 i novi iOS26. Znam da je samo volio "lickable" user interface ali ovo izgleda toliko cartoony i bloated da se izgubio premium look.
  • hal9000: Ako ne revolucionaran (a siguran sam da bi ih bilo), što god da je, bilo bi bez kompromisa i jednostavno radilo bez je*emti.
  • VanjusOS: sve nas zanima što bi bilo da je još poživio... da li bismo imali još koji revolucionarni proizvod? ja sam uvjeren da bismo imali i više od jednog..
  • hal9000: @VanjusOS: Ah, kad se sjetim Jobs-a i kako je dobro vodio Apple, dođe mi da sada zaplačem. Kako u zezanciji znam reći: "Steve Jobs, vrati se! Sve ti je oprošteno!"
  • VanjusOS: jučer bila godišnjica Jobsove smrti - zar nitko nije se sjetio toga?
  • dpasaric: Vidim da vam treba više ljubavi, pa nešto s puno pozitive... :)
  • dpasaric: Novi članak na naslovnici! :)
  • drlovric: Ako imamo nekog vlasnika pausalnog obrta, molim da mi se javi. Hvala.
  • Bertone: Sad sam zbunjen, toliko da sam išao googlati da li se što promijenilo oko pojma "tašt", ali kako nije, ne razumijem pitanje ili zašto si došao do takvog zaključka :/
  • drpongrac23: @Bertone- Zašto si pun taštine?!?!
  • Tito: Baš gleado prošli tjedan u Kinoteci
  • Yonkis: [link] ako niste gledali u kinu (Art Kinu) onda morate pogledati na HRT2, večeras, rekao bih da je must-see za sve koji su iz Rijeke
  • Bertone: I tako se od pitanja da li djetetu (za koje ne znamo koliko ima godina) isplati uzeti laptop, došli smo do čiji je ve*i :D
  • jura22: Naveo primjer. Postoje i editori za jednanzbe na macOS-u.
  • smayoo: Pages koristi standardni LaTeX za jednadžbe, kao i LibreOffice (LO ima još i neki legacy sistem od OpenOfficea), a MS Office koristi svoj neki vrlo nepraktičan sistem, oduvijek. Tko piše puno jednadžbi u svojim tekstovima, nauči se LaTeXu jako brzo i puno je brži i efikasniji nego s MSO, na bilo kojoj platformi.
  • jura22: Za unijeti jednandžbu u Pages treba naučiti prohgramirati.
  • jura22: MSO na macOS-u ne radi kao na WIN. Recimo Mail Merge je neupotrebljiv ako ima iole više slogova. Kao tekst procesor je OK, ali je i Pages isto OK.
  • drlovric: Ako bas hoces Air, instaliraj Parallels i opet vrti nativnu verziju Win Office paketa. Radi to dobro.
  • drlovric: Autori MS Office za Win i Mac nisu nikada otisli niti na team building, a kamoli radili skupa. Ta dva proizvoda nemaju zive veze jedan s drugim :)
  • Bertone: Kako to? Pa rekao si da MacOS bolje koristi hardverske resurse :P

Za vikanje moraš biti prijavljen.

Prijava

Prisutni jabučari

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Komentari

Anketa

Koji Mac koristite?

Page Speed 1.17 Seconds

Provided by iJoomla SEO