Skripta za povlačenje URL linkova iz HTML datoteka?

Skripta za povlačenje URL linkova iz HTML datoteka?

offline
  • IvanC 
  • Ugledni građanin
  • Pridružio: 30 Jun 2009
  • Poruke: 369

Napisano: 14 Sep 2018 9:14

Ima li netko skriptu kojom bi mogao u TXT file povući sve URL linkove koji se nalaze u *.html datotekama.
Dakle, imam preko 1000 HTML datoteka koje su smještene u folderima i subfolderima, glavni folder je C:/Temp/.
Želio bi u jednom potezu u TXT datoteci imati popis svih URL.
Skripta bi trebala proći kroz sve foldere i subfoldere, pogledati svaku HTML datoteku i ako se u njoj nalazi neki URL, skripta bi trebala u *.txt datoteku zapisati taj URL i path gdje se nalazi taj URL.
Skripta treba tražiti sve linije html koda koje sadrže pojmove

<img src="http://
<img src="www.
<a href='http://
<a href='www.

i vratiti u *txt file kompletan URL koji se nalazi u liniji koda koja počinje sa navedenim pojmom.

npr. u TXT file treba vratiti neku od linija koda (početni dio koda je "<img" i "<a href" a završni dio koda može biti ">" ili "/>"

<img src="http://www.ic-ims.com/images/word_08.png" width="30" height="22" alt=""> PATH= C:/web/office2003/funkcije/excel2003.html
<img src="http://ic.ims.hr/images/word_08.png" width="30" height="22" alt=""> PATH= C:/web/office2007/tutoriali/excel2007.html
<img src="http://www.ic.ims.hr/images/excel_10.png" width="30" height="22" alt=""> PATH= C:/web/office2007/tutoriali/vlookup.html


Na ovaj način želim vidjeti sve URL koje imam i onda putem filtriranja u Excelu trebam obrisati određene URL u određenim HTML datotekama.
U stvari moj cilj je pronaći sve HTML datoteke koje sadrže URL (koji vode na neki web sajt) a koji nije vezan uz 'www.ic.ims.hr', 'ic.ims.hr', 'www.ic-ims.com' i 'ic-ims.com'

Ako nitko nema vremena za programiranje, trebam barem skriptu koja će povući sve URL+PATH bez obzira kakav kod imaju.
Može li mi neki programer ovdje pomoći?

Dopuna: 16 Sep 2018 16:08

Nitko ništa Sad
Ima li netko barem link na neki program koji radi barem nešto slično?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 14 Feb 2008
  • Poruke: 12102

Napisano: 16 Sep 2018 19:21

Da li je OK ako ti izlaz bude ovakav :
https://www.mycity.rs/Audio-Video-montaza/ C:\Users\srki9\Desktop\tt\MyCity.html?

Radiš isključivo sa .html fajlovima?

Dopuna: 16 Sep 2018 19:24

Ovo me je zbuilo, pa zato pitam :
Citat:U stvari moj cilj je pronaći sve HTML datoteke koje sadrže URL (koji vode na neki web sajt) a koji nije vezan uz 'www.ic.ims.hr', 'ic.ims.hr', 'www.ic-ims.com' i 'ic-ims.com'

Jer za to može da ti odradi posao ovo što sam napisao gore u code tagu. Videćeš koji fajlovi sadrže linkove koji ne odgovaraju.



offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4434

Skriptu za Windows specifično ti ne mogu napisati pošto sam na Mac-u, ali možeš to da uradiš preko grep-a (sigurno ima verzija i za Windows). Primer fajla:

test.html
<a href="www.nesto.com"></a> <a href="http://www.nesto.com"></a> <a href="https://www.nesto.com"></a> <img src="www.nesto.com/slika.jpg"/> <img src="http://www.nesto.com/slika.jpg"/> <img src="https://www.nesto.com/slika.jpg"/>
Komanda (pokrećeš je u korenu direktorijuma, rekurzivna je pa će proći i kroz poddirektorijume):
grep -r -Eo "(www.|http://|https://)[a-zA-Z0-9./?=_-]*" . > fajl.txt
Izlaz:
./test.html:www.nesto.com ./test.html:http://www.nesto.com ./test.html:https://www.nesto.com ./test.html:www.nesto.com/slika.jpg ./test.html:http://www.nesto.com/slika.jpg ./test.html:https://www.nesto.com/slika.jpg

Verovatno bi mogla lagano da se napravi i varijanta sa PATH=, ali nisam toliko vešt sa Unix alatkama.

offline
  • IvanC 
  • Ugledni građanin
  • Pridružio: 30 Jun 2009
  • Poruke: 369

Napisano: 16 Sep 2018 21:07

E.L.I.T.E. ::ali nisam toliko vešt sa Unix alatkama.Hvala ti na javljanju i željom za pomoći. Spominješ pojmove koje ja ne razumijem a o alatkama ni slova Smile
Tako da, teško da ja to mogu upotrijebiti.
Kada malo bolje pogledam, Za Windows 7 ako postoji neka naredba koja bi išla kroz CMD prompt i pokrenuta u C:\Temp\ folderu i da odradi tako nešto, možda bi mogao iskorisitit kasnijim pročišćavanjem (ako bi uspio sam mojim nikakvim znanjem "programiranja").
Imaš li iudeju za Windows?

Dopuna: 16 Sep 2018 21:25

Srki94 ::----------- [b]Radiš isključivo sa .html fajlovima? Da isključivo HTML fajlovi. Mogu ja njih konvertirati i u *.TXT fajlove.

Bitno mi je imati neku tekstualnu datoteku sa popisom svih URL koji nisu (oni gore koje sam naveo).

npr: U C:\Temp\ folderu imam više od 30 foldera a u njima se nalaze subfolderi pa tim subfolderima ima još subfoldera i tako mislim do 6-tog nivoa u dubinu.
Sve su *.html fajlovi.

Dakle ako se u nekom fajlu nalazi neki URL poput

http://www.microsoft.com

U TXT fajlu gdje bi bili rezultati trebalo bi pisati
http://www.microsoft.com path=C:\Temp\Excel2013\Funkcije\indirect.html
dakle ovaj URL nalazi se u dotičnoj HTML datoteci.

ili

http://microsoft.com

U TXT fajlu gdje bi bili rezultati trebalo bi pisati
http://microsoft.com path=C:\Temp\Excel2013\Funkcije\vlookup.html
dakle ovaj URL nalazi se u dotičnoj HTML datoteci.

Na ovaj način ja bi mogao vidjeti sve vanjske URL-ove koji nisu vezani za moje dvije domene (navedene u prvom postu) i u kojoj HTML datoteci se taj URL nalazi.

Ne bi bio problem da ja prođem pješke folder po folder ali imam preko 1500 HTML fajlova.
Naravno ovo je samo primer, imam ja puno vanjskih URL.

Ako je problem ignorirati moje unutarnje URL linkove/domene ('http://www.ic.ims.hr', 'http://ic.ims.hr', 'http://www.ic-ims.com' i 'http://ic-ims.com' ), nema veze, neka se i oni nađu na popisu. Ja ću njih isfiltrirati kroz Excel i ukloniti da si pročistim popis.

BTW: Ako je problem, tada slike u tagu ( IMG SRC) ne moraju biti na popisu (dovoljno je samo tag A HREF linkovi koji vode na vanjske web stranice.)

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4434

Ma, ne treba ti nikakvo specijalno znanje, dovoljno je da znaš da uđeš u Komandnu liniju i pokreneš komandu. Sad sam se setio Cygwin-a, on bi trebao da dolazi sa grep alatom.

Postoji takođe i grafička alatka za Windows po imenu PowerGREP (trial verzija je besplatna), ima istu funkcionalnost kao i klasični grep.

Postoji i ugrađena Windows alatka FINDSTR koja obavlja istu funkciju no trenutno nisam u mogućnosti da je isprobam. Sačekaj Srkija da se javi, on verovatno ima neko bolje rešenje za Windows.

offline
  • Pridružio: 14 Feb 2008
  • Poruke: 12102

Napisao sam ti na brzinu program koji će da ti odradi ovaj posao za sada, pa ćemo ga prilagoditi sutra ili večeras, ako stignem.

Uglavnom, ovo što sam napisao treba da ti odradi posao za sada.

Program skenira sve html fajlove i grupiše rezultate u tri grupe pa ih potom čuva u txt fajl :
- Scanned URLs - rezultat skeniranja koji je ispunio sve tvoje zahteve
- Ignored URLs - rezultat skeniranja koji u sebi ima neku ključnu reč koju si ignorisao
- nonURLs - lista rezultata koji ne počinju sa www, http ili https (npr ./images/bla.jpg)



Folder to scan : Root folder koji će program skenirati. Skenira sve .html fajlove, uključujući i one koji se nalaze u root folderu.
Exclude list : Ako rezultat sadrži neki od pojmova unetih ovde (bilo gde u sebi), neće završiti u glavnoj listi rezultata. Pojmove deliš jednim space tasterom, bez razmaka posle poslednje reči. Strašno bitno jer nisam vršio dodatne provere.
Scan Scope : Program će skenirati samo elemente koji odgovaraju izabranoj kućici ovde.

"Result must include www or http://" Dakle, ako rezultat u sebi ne sadrži "www.", "http://" ili "https://", neće ući u listu skeniranih linkova već će se odvojiti u "nonURL" listu.

Klikneš na Extract, sačekaš da završi, sigurno će se smrznuti. Budi strpljiv. Dobićeš mali prozor sa statistikom i logove ćeš pronaći u root folderu koji je program skenirao.

P.S. napravi kopiju html fajlova pre nego što probaš program.
Javi ako nešto pukne i slično, neću moći ništa do večeri da popravim najverovatnije a pitanje je da li ću moći i tada.

Download

offline
  • IvanC 
  • Ugledni građanin
  • Pridružio: 30 Jun 2009
  • Poruke: 369

Napisano: 17 Sep 2018 14:49

OK dečki
Hvala vam.
Javit ću se sa povratnim informacijama nakon testiranja.

Dopuna: 17 Sep 2018 15:21

@Srki94
Evo povratne informacije.
Isprobao sam i neznam što bih ti rekao. Jednostavno nemam riječi. Sve radi upravo onako kako sam želio. Svaka čast.
Citat:Napisao sam ti na brzinu program koji će da ti odradi ovaj posao za sada Kažeš na brzinu, hmm što bi bilo tek da si imao više vremena Smile Sve radi besprijekorno i bez zamrzavanja.

Zbog ovog novog i trulog "EU poreza na linkove" ja sad moram proći kroz preko 1500 HTML fajlova da vidim što trebam ukloniti tj. kako poništiti aktivan živi link na nekom tekstu (tj. ukloniti <a href=URL> tag, tako da ostane samo tekstualni dio). Sada ću ja te rezultate prebaciti u Excel i filtriranjem izdvojiti ono što mi trenutno ne treba pa s obzirom na ostatak opet "pješaka" pregledavanje za žive "POREZNE linkove".

Jedno pitanje. Ima li ova aplikacija vremensko ograničenje trajanja, da si ostavim za ubuduće ako nema?

@E.L.I.T.E.
Hvala i tebi na linkovima i trudu. Srki94 mi je riješio roblem ali iz radoznalosti isprobat ću ovaj FINDSTR ako bude moguće. Čisto da vidim kako funkcionira i da li se može preko njega što uraditi.

offline
  • Pridružio: 14 Feb 2008
  • Poruke: 12102

Nema vremensko ograničenje.
Ziveli

offline
  • IvanC 
  • Ugledni građanin
  • Pridružio: 30 Jun 2009
  • Poruke: 369

Srki94 ::Nema vremensko ograničenje. OK, hvala ti još jednom. Ziveli

Ko je trenutno na forumu
 

Ukupno su 610 korisnika na forumu :: 58 registrovanih, 5 sakrivenih i 547 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1567 - dana 15 Jul 2016 19:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Sale, Arhiv, Atomski čoban, banebeograd, bonaparta, Boris90, Boter, chester_perry, dada.chokolada, dakota, djboj, Djokislav, djordjemiklusev, dragisa dragisa, dule10savic, dule_pacov, Dzoni Stek, dzoni25, ekser222, galijot, Georgius, goxin, GreenMan, hyla, janezek67, Kubovac, KUZMAR, ladro, lazicdb, MB120mm, mikiopacity, milan op1978, Miskohd, mrkanidja, nedeljkovici, nesa1962, ofbeyond, pedja63, pein, play4fun, powSrb, RADOVAN.S, Recce, Revolucion, rkekoke, robertino2, rovac, ruger357, sfb, Skywhaler, Snorks, suton2, Toni, tritonus, Vazduhoplovac, voja64, volimpivuvolimrakiju, Warhawk