| FONForum http://www.fonforum.org/ |
|
| URL extractor? http://www.fonforum.org/viewtopic.php?f=8&t=5168 |
Stranica 1 od 1 |
| Autoru: | Adept [ 06.11.2005. 23:08:15 ] |
| Tema posta: | URL extractor? |
Recimo da imam spisak URL-ova bilo kog nivoa komplexnosti. I recimo da mi je neophodan spisak onoga što se nalazi na svakom URL-u, ali ne običan spisak, već URL spisak - najobičniji TXT file u kojem će svaki red sadržati po jedan URL sa određene strane. Zanima me, dakle, postoji li neki progi koji to može automatski da uradi: učitam mu TXT file sa URL-ovima koje treba proveriti, on potom uzima jedan po jedan URL [može i paralelno, svejedno], "gleda" šta se nalazi na svakom i na osnovu analize svih URL-ova, pravi izlazni TXT fajl sa spiskom svih URL-ova koje je uspeo da pokupi. Progi treba samo da mi pokupi linkove koji se na toj strani nalaze. A bilo bi odlicno ukoliko bi u progiju postojala mogućnost kakvog parsera, koji bi mogao da, po zadatim kriterijumima, u startu odbaci određene URL-ove, ukoliko [ne]sadrže određenu reč, extenziju i sl. Ukoliko neko zna za takav progi, bio bih više nego zahvalan. |
|
| Autoru: | Adept [ 06.11.2005. 23:23:30 ] |
| Tema posta: | |
Neka moderatori obrišu temu ispod... veza je pukla pa je došlo do dupliranja posta...
|
|
| Autoru: | VITA [ 07.11.2005. 01:18:54 ] |
| Tema posta: | |
znas kako .. ovo bi se resilo u javi lako.. evo ti kako bi citao sa odredjene adrese html.. sad znaci u ovoj while petlji treba jos da proveris da li je tag <a href+=""></a> i da to uzmes i sacuvas u neki string i na kraju da spicis u file taj string koji sadrzi sve urlove sa jedne adrese... naravno ,ako citas iz file-a onda sve ovo stavi u petlju i u konstruktor za url stavi red koji si procitao iz file-a sa web adresama. Tako ces za sve adrese da sacuvas sve linkove... Kod: import java.io.BufferedReader;
import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; public class Main { public static void main(String[] args) { try { URL adresa = new URL("http://www.fon.bg.ac.yu"); InputStream is = adresa.openStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); StringBuffer buffer = new StringBuffer(); String row ; while( (row = br.readLine()) != null ){ buffer.append(row+"\n"); } System.out.println(buffer); } catch (Exception e) { e.printStackTrace(); } } } |
|
| Autoru: | zlatko [ 07.11.2005. 10:08:45 ] |
| Tema posta: | |
Морао би се користити неки парсер да би се извукао линк. Постоје специјализовани ХТМЛ парсери па се само редефинише метода за ознаку линка. Знам да се то врло лако може урадити у питону, али ни у јави није тешко. Међутим проблем се може решити и без програмирања. Мислим да слободан програм HTTrack може то уратити. |
|
| Autoru: | Dete [ 07.11.2005. 14:43:08 ] |
| Tema posta: | |
Ako ne uspes da nadjes program za ovo sto ti treba, mozda bi mogao da napravis program koji bi ti radio to sto zelis. Mislim da ti ne bi trebalo mnogo vremena. Ali... Ako se uhvatis sa time u kostac, dobro razmisli o tome kako ces da procesiras html, postoji n varijacija koje HTML parser cita kao link, a tebi moze pretstavljati problem: NPR, ovo je isto: <a href=link></A> i ovo <a HreF= "link">< /a> Dobro razmisli o ovome. Srecno. |
|
| Autoru: | Adept [ 07.11.2005. 15:48:50 ] |
| Tema posta: | |
Nakon lutanja netom, nisam uspeo pronaći ništa što bi moglo da mi posluži kao rešenje za izneti problem. Zlatko je preporučio HTTrack... s obzirom da ga odavno imam na makini, pokušao sam i sa njim, ali nije išlo. Koje god podešavanje da mu stavim, uvek mi skida celu stranu... ali meni ne treba to, jer trošim isto vreme kao kada bih sve ručno pregledavao i sakupljao linkove... Ja upravo želim da to "manuelno" izbegnem i pokušam automatski da pokupim info koji mi je potreban. Takođe, pronašao sam par različitih URL extractora [makar im tako stoji u nazivu! ], ali ni oni ne rade posao. Sve je to slično HTTracku...
Nakon svega, ostalo mi je jedino da vidim mogu li se sam izboriti sa time. Rešenje koje je ponudio VITA je jedno od onih koje sam uspeo pronaći na razno-raznim code sajtovima, te mi jedino ostaje da malo "probdim" nad problemom i skrpim nešto. I mene muči način na koji ću procesirati HTML. Nisam siguran, ali da li bi trebalo implementirati i tzv "robots" pravila [u slučaju višestrukog paralelnog procesiranja, ne?], kako progi ne bi bio prepoznat kao spider i samim tim mu se zabranio pristup? Nisam puno čitao o tome na koji način 'robots rules' rade, pa pitam... ... a mislio sam da ću zaobići programiranje i dobiti gotovu aplikaciju!
|
|
| Autoru: | zlatko [ 07.11.2005. 23:21:53 ] |
| Tema posta: | |
Zar ti nisi bio prevodilac HTTracka-a? Moraš voditi računa i o apsolutnim i relativnim adresama... |
|
| Autoru: | VITA [ 08.11.2005. 00:14:12 ] |
| Tema posta: | |
analiziraj red po red... mozes preko metode matches koja prima regularni izraz... tipa "/[H h][r R][e E][f F]/"... ovaj regularni izraz bi trebao da ti radi...ako ne dodaj pre i posle .* (znaci bilo koji karakter koliko god puta) i kad dobijes da je poklapanje onda taj ceo red obradis tj. skines sve posle = i sacuvas u neki niz i onda sve to na kraju zapises u file... |
|
| Stranica 1 od 1 | Sva vremena su u UTC + 1 sat |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|