Parsarea și prelucrare pagini web pentru a alege cea mai bună bibliotecă php

Parsarea și prelucrare pagini web pentru a alege cea mai bună bibliotecă php

Lonjeroane sarcină și prelucrează informațiile necesare cu un site terț se confruntă cu un dezvoltator de web și de multe ori pentru o varietate de motive: astfel încât să puteți completa conținutul dvs. de proiect, în mod dinamic încărcați unele informații și așa mai departe.

În astfel de cazuri, o întrebare programator: care dintre zeci de biblioteci, pentru a alege? În acest articol am încercat să ia în considerare opțiunile cele mai populare și alege cele mai bune.

expresii regulate

Chiar și în ciuda faptului că „sezonul regulat“ - primul lucru care vine în minte este de a le folosi pentru aceste proiecte nu este necesară.

Da, cu sarcini simple REGEX face față mai bine decât oricine, dar utilizarea sa este mult mai dificil atunci când aveți nevoie Spars bucată mare și complex de HTML-cod, care, de altfel, nu corespund întotdeauna la orice model particular și poate conține chiar erori de sintaxă.

XPath și DOM

DOM si XPath nu sunt biblioteci în sensul obișnuit al cuvântului, sunt module standard, care sunt construite în PHP începând cu a cincea versiune. Nu este nevoie de a utiliza soluții terțe părți le face una dintre cele mai bune instrumente pentru analiza de pagini HTML.

La prima vedere poate părea că pragul de intrare scăzută - nu e vorba de ei, într-adevăr unele locuri sunt destul de complexe. Dar numai la prima vedere: este necesar să se înțeleagă un pic cu sintaxa și principiile de bază, ca XPath deveni imediat instrumentul dvs. pentru a analiza numărul unu.

De exemplu, codul folosind DOM și XPath, care se uita la toate etichetele de marcare și modifică atributul src:

Cu toate acestea, această opțiune nu este lipsită de dezavantaje - pentru parsarea motorului este utilizat, destinat în principal pentru lucrul cu XML, dar XML și HTML, deși sunt limbi foarte asemănătoare, dar încă diferite. Din aceasta rezultă cerințele specifice pentru marcarea: de exemplu, toate etichetele HTML ar trebui să fie închise.

DOM HTML simplu

Simplu DOM HTML - PHP-bibliotecă permite pentru a analiza codul HTML cu selectorii convenabil jQuery asemănătoare.

Este lipsit de dezavantaj major XPath - biblioteca este capabil de a lucra chiar și cu invalid HTML-cod, care simplifică foarte mult munca. Puteți uita, de asemenea, despre problemele de codificare: Toate conversiile sunt efectuate automat.

În acest exemplu, mai întâi încărcat, apoi pre-preparat HTML-cod modificat: a doua linie are loc cu adăugarea de valoare a atributului de clasă al primului element de bare care a căzut div. și în linia următoare, vom înlocui elementul text cu id = „lume“ pentru a foo.

$ HTML = str_get_html ( '

Alo
lume
„);

$ HTML -> Find ( 'div' 1.) -> class = 'bar';

$ Html -> găsi ( 'div [id = mondial]' 0.) -> innerText = 'foo';

Deși nu este cea mai rapidă performanță, în comparație cu alte opțiuni, Simple HTML DOM are cea mai mare comunitate vorbitoare de limba rusă și cea mai mare prevalență în RuNet - pentru începători, face scrierea de cod cu utilizarea sa mult mai ușor.

Portarea aproape tot ceea ce este în cadrul, JS-: suport pentru selectoare, atribute, manipulare, eludare, plug-in-uri, evenimente (inclusiv clicuri simulând, etc.), și chiar AJAX. Poate fi folosit ca prin PHP, sau prin linia de comandă ca o aplicație separată.

Mai mult decât atât, în conformitate cu valorile de referință noastre, phpQuery a apărut în 8 (!) Ori mai rapid simplu DOM HTML.

Un mic exemplu pe phpQuery, în care are loc prelucrarea elementelor lista preselectate (li):

Ca și în cazul funcțiilor convenționale mysql_ folosind metode fetch_array () sau fetch_objects (), putem obține rezultatul interogării sub formă de matrice asociative uzuale sau obiect.

De asemenea, este de remarcat htmlSQL de mare viteză: ea se consultă adesea phpQuery de mai multe ori mai rapid sau același DOM HTML simplu.

Cu toate acestea, pentru sarcini complexe, s-ar putea să nu aibă funcționalitatea și dezvoltarea bibliotecii pentru o lungă perioadă de timp sa oprit. Dar chiar și așa, este încă de interes pentru dezvoltatori web: în unele cazuri, mult mai convenabil de a folosi limbajul SQL cu CSS-selectorii. Mai ales atunci când nu știi ce-CSS selectoare 😉

Într-un mini-studiu, am ajuns la concluzia că, în cele mai multe cazuri, este mai bine să utilizați pentru parsarea bibliotecă phpQuery: este rapid, funcțional și modern.

Pe de altă parte, pentru sarcini foarte simple, ar fi logic să se utilizeze modulele PHP standard, cum ar fi XPath, DOM, sau, în cazuri extreme, expresii regulate.

Altceva?

Pentru PHP, există încă zeci de diferite biblioteci și instrumente pentru parsare, dar în acest articol am considerat doar cel mai interesant, funcțional și productiv.

Dacă nu utilizați PHP, puteți găsi o scurtă listă de instrumente similare pentru alte limbi: