Pagina 2 din 2

Re: Convertire fisier HTML in fisier XML

Scris: Vin Sep 18, 2015 12:29 am
de Mariusiky
Birkoff scrie:ia vezi daca te ajuta asta (nu am folosit dar vad in exmeplu ca are echo $element->src (unde la tine in loc de src va fi elementul id)
http://simplehtmldom.sourceforge.net/
sau asta
http://htmlparsing.com/php.html
(am dat un search dupa html parser)


Ok, ideea e ca ma folosesc de simplehtmldom sa gasesc informatia de pe o pagina sursa dintr-un anumit div class id etc. dar eu as vrea sa reduc toata pagina sursa la un document XML care sa aiba doar numele claselor si al id-urilor in tag-uri fiind mai usor sa preiau informatia din acestea. Functia find() din simplehtmldom cauta exact in div-ul pe care il dau eu dar e destul de incomod pentru ca uneori nu aleg cum trebuie div-urile si nu imi preia informatia. M-am gandit sa transpun toata pagina sursa intr-un document XML de unde sa preiau cu cURL mult mai usor informatia. Probabil exista si alte metode doar ca nu gasesc una cat mai buna.

P.S Daca incerci site-ul diffbot[dot]com iti preia exact continutul text de pe o anumita pagina a unui site si as vrea sa fac un script care sa faca acelasi lucru la o simpla scanare a site-ului. Si nu imi dau seama cum il preia cand scaneaza pagina.

Re: Convertire fisier HTML in fisier XML

Scris: Vin Sep 18, 2015 9:03 am
de Birkoff
Mariusiky scrie:
P.S Daca incerci site-ul diffbot[dot]com iti preia exact continutul text de pe o anumita pagina a unui site si as vrea sa fac un script care sa faca acelasi lucru la o simpla scanare a site-ului. Si nu imi dau seama cum il preia cand scaneaza pagina.


am dat sa vad ce extrage din linkul din pagina asta (din phpromania din forum, discutia curenta) si nu mi-a extras nimic... am mai incercat si alte pagini si la fel zice ca nu gaseste nimic.

din ce am observat eu la diffbot, parteaza pagina si extrage anumite taguri/id-uri si continutul lor dar nu are cine stie ce algoritm de parsare a paginilor.
personal, as folosi simplehtmldoom, as parsa pagina, as memora intr-un array id-urile si continutul acelor id-uri si apoi as incerca sa gasesc pentru site-ul/pagina care ma intereseaza un numitor comun de care sa ma leg sa pot compune un algoritm sa extrag ce imi trebuie.

Re: Convertire fisier HTML in fisier XML

Scris: Vin Sep 18, 2015 9:32 am
de Mariusiky
Am folosit in loc de functia find() aceasta functie care cauta exact intre div-uri dar trebuie imbunatatita pentru ca la fel nu preia informatia cum trebuie.

Cod: SelectaĊ£i tot

scrape_between()


http://www.jacobward.co.uk/working-with-the-scraped-data-part-2/


M-am gandit sa preiau cumva informatia in alt mod, gen, cand dai pe pagina sursa sa vad linia care ma intereseaza si sa-i dau script-ului sa preia codul de la linia X pana la linia Y sa o filtreze sa scap de tag-uri iar mai apoi sa imi returneze continutul care ma intereseaza dar nu stiu cum as putea face asta.
Sa am o functie careia sa-i dau linia 100 pana la linia 200 sa preia informatia si sa o filtreze sa scap de tag-uri. Dupa ce parsez tot codul se poate cumva sa returnez liniile de cod ? Cod-ul care incepe de la linia X. Cred ca ar fi mult mai usor.

Re: Convertire fisier HTML in fisier XML

Scris: Dum Sep 20, 2015 10:43 pm
de necuratu
bai nu esti prost ce vrei sa faci :) misto abordarea ideii :) dar o sa maninci foarte multe resurse pe partea de proc
poti face tu sa scoata pagina in html sa faci explode dupa '\r\n si sa tii cont la ce linie esti

Re: Convertire fisier HTML in fisier XML

Scris: Lun Sep 21, 2015 8:28 am
de Mariusiky
necuratu scrie:bai nu esti prost ce vrei sa faci :) misto abordarea ideii :) dar o sa maninci foarte multe resurse pe partea de proc
poti face tu sa scoata pagina in html sa faci explode dupa '\r\n si sa tii cont la ce linie esti


Sunt constient ca se vor folosii resurse pe partea de procesor dar o sa incerc mai multe metode si cand gasesc una buna incerc sa o optimizez. Deocamdata imi lipseste doar timpul sa ma ocup de asa ceva.

Re: Convertire fisier HTML in fisier XML

Scris: Mar Sep 22, 2015 4:08 pm
de Mariusiky
Birkoff scrie:
Mariusiky scrie:
P.S Daca incerci site-ul diffbot[dot]com iti preia exact continutul text de pe o anumita pagina a unui site si as vrea sa fac un script care sa faca acelasi lucru la o simpla scanare a site-ului. Si nu imi dau seama cum il preia cand scaneaza pagina.


am dat sa vad ce extrage din linkul din pagina asta (din phpromania din forum, discutia curenta) si nu mi-a extras nimic... am mai incercat si alte pagini si la fel zice ca nu gaseste nimic.

din ce am observat eu la diffbot, parteaza pagina si extrage anumite taguri/id-uri si continutul lor dar nu are cine stie ce algoritm de parsare a paginilor.
personal, as folosi simplehtmldoom, as parsa pagina, as memora intr-un array id-urile si continutul acelor id-uri si apoi as incerca sa gasesc pentru site-ul/pagina care ma intereseaza un numitor comun de care sa ma leg sa pot compune un algoritm sa extrag ce imi trebuie.


Pana la urma am rezolvat. Este simplu. Prin functia file din php extrag pagina sursa si cu un foreach imi afisez toate liniile si pe fiecare linie div-urile. Filtrez div-urile si raman cu contentul. Pur si simplu fac o functie careia ii dau linia de unde sa preia informatia, filtrez div-urile si astfel am acces usor la informatia dorita.
Div-ul tine pe linie pana se termina deci nu sunt nevoit sa dau mai multe linii de unde sa preia continutul. Simplu nu ? :D
Multumesc pentru idei.

Re: Convertire fisier HTML in fisier XML

Scris: Mar Sep 22, 2015 5:53 pm
de Birkoff
algoritmul tau are o hiba :)
daca programatorul acelui site mai adauga/modifica ceva in pagina, nr de linii se va modifica si nu mai gasesti continutul tau la linia initiala...

personal nu m-as ghida dupa nr liniei ci dupa tag sau id.

Re: Convertire fisier HTML in fisier XML

Scris: Mie Sep 23, 2015 5:33 pm
de Mariusiky
Birkoff scrie:algoritmul tau are o hiba :)
daca programatorul acelui site mai adauga/modifica ceva in pagina, nr de linii se va modifica si nu mai gasesti continutul tau la linia initiala...

personal nu m-as ghida dupa nr liniei ci dupa tag sau id.


Si daca fac un script care sa-si dea refresh la informatia preluata din pagina sursa mai des, e probabilitate mica sa se modifice liniile si sa nu nimeresc linia aleasa. :D