Cum să răzuiți datele în 5 pași simpli

Publicat: 2020-02-17
Cuprins arată
Cum să răzuiți datele în 5 moduri simple
1. Alegeți un limbaj de programare sau un instrument pentru data scraping
2. Scraping o singură pagină web și analizați componentele
3. Decideți asupra unei strategii de curățare și stocare a datelor
4. Creați o listă de pagini web sau scrieți un regex pentru răzuirea datelor
5. Scrieți codul și testați
Metode alternative de colectare a datelor
Utilizați funcția Excel Filter pentru a răzui datele
Utilizați funcția Text-to-Columns din Microsoft Word pentru a separa datele după coloană
Utilizați IMPORTXML în foi de calcul Google
Utilizați IMPORTHTML în Foi de calcul Google
Folosind extensii Chrome
Concluzie

Cât de des trebuie să răzuiți datele de pe un site web pentru munca dvs. și vi se pare prea greu? Această postare de blog vă va învăța cum să răzuiți datele în 5 pași simpli.

Această postare este scrisă pentru profesioniștii din software care trebuie să extragă date din pagini web sau PDF-uri și doresc ca procesul să fie cât mai rapid și nedureros posibil. Există multe modalități de a răzui datele, dar acest articol se va concentra pe câteva dintre cele mai populare metode care sunt utilizate de dezvoltatorii profesioniști: XPath, Regular Expressions, Beautiful Soup (BSA), Scrapy, Python Requests Library (PRL) și Selenium Webdriver. Aceste instrumente de răzuit pot fi instalate cu ușurință, cu instrucțiuni furnizate pentru fiecare. Un tabel care rezumă aceste instrumente este inclus mai jos, care descrie avantajele/dezavantajele lor și link-uri pentru mai multe informații despre ele, atunci când este cazul. Tabelul include alte metode nu atât de populare pe care le-am încercat și eu și sunt incluse pentru a fi complet.

Scrapingul datelor de pe un site web se poate face în orice limbă. În acest articol, voi demonstra cum să răzuiți datele folosind Python, deoarece este foarte ușor de instalat și destul de ușor de învățat, mai ales dacă cunoașteți deja un alt limbaj de programare, deoarece sintaxa este similară cu Java, C și PHP. Python acceptă mai multe biblioteci pentru scraping date care sunt descrise în tabel. Scrapingul este un instrument pe care toată lumea ar trebui să știe cum să-l folosească, deoarece oferă informații valoroase asupra pieței dvs. țintă, concurenților și/sau clienților.

Web scraping vă poate ajuta să extrageți diferite tipuri de date. Puteți accesa cu crawlere listele imobiliare , datele despre hoteluri sau chiar datele despre produse cu prețuri de pe site-urile de comerț electronic scriind câteva rânduri de cod. Dar dacă intenționați să accesați cu crawlere web și să extrageți date, trebuie să aveți grijă de câteva lucruri. Este important să vă asigurați că datele răzuite sunt într-un format utilizabil. Codul dvs. poate extrage date de pe mai multe site-uri web. Datele extrase sunt curate și nu dau rezultate eronate la rularea algoritmilor. Acestea fiind spuse, dacă doriți să vă scrieți codul sau să creați un mic proiect web scraping pentru a accesa cu crawlere datele de pe site-uri web, puteți face acest lucru în cinci pași simpli.

5 moduri simple de a răzui datele

Cum să răzuiți datele în 5 moduri simple

1. Alegeți un limbaj de programare sau un instrument pentru data scraping

„Un om este la fel de bun ca uneltele sale”. Prin urmare, trebuie să vă alegeți instrumentele pentru web scraping într-un mod care să se potrivească nevoilor dvs. Deși unele software gata de utilizat pot părea ușor de utilizat, este posibil să nu vă permită să faceți multe modificări de configurare. În același timp, este posibil ca multe instrumente să nu aibă un plugin pentru a salva datele pe care le-ați răzuit într-o bază de date sau pe cloud. Când vine vorba de limbaje de programare care sunt folosite astăzi pentru răzuirea datelor, există Node.js, Python, Ruby și multe altele. Dar dintre acestea, Python este cel mai popular datorită curbei sale de învățare mai ușoare, sintaxei simple, disponibilității mai multor biblioteci externe și limbajului fiind open source.

Există mai multe biblioteci, cum ar fi BeautifulSoup și Scrapy , care pot fi folosite pentru a accesa cu crawlere paginile web, pentru a crea păianjeni de crawling pe web și pentru a rula lucrări de scraping la anumite intervale de timp. Python permite o flexibilitate imensă atunci când vine vorba de integrarea altor sisteme cu motorul dvs. de scraping. Puteți salva cu ușurință datele răzuite pe mașina dvs. locală, în baze de date, pe S3 Storage sau chiar le puteți arunca într-un fișier Word sau Excel .

2. Scraping o singură pagină web și analizați componentele

Înainte de a începe să răzuiți informații despre produse de la o mie de pagini de produse de pe Amazon , trebuie să accesați pagina și să obțineți întreaga pagină HTML pentru a o analiza și a decide o strategie. Datele din paginile HTML pot locui în anumite perechi cheie-valoare din etichete sau textul din etichete. Puteți folosi biblioteci precum BeautifulSoup pentru a specifica din ce etichetă exact doriți să extrageți date de pe fiecare pagină web și apoi să rulați codul într-o buclă. În acest fel, pentru fiecare pagină web de produs, codul dvs. va rula și va extrage aceleași informații - să zicem, detalii despre preț.

3. Decideți asupra unei strategii de curățare și stocare a datelor

Chiar înainte de a începe să răzuiți datele, ar trebui să decideți unde veți stoca datele. Acest lucru se datorează faptului că modul în care procesați datele va depinde de locul în care le veți stoca. Există mai multe opțiuni disponibile. Puteți alege între bazele de date NoSQL și SQL, în funcție de faptul dacă datele pe care le răzuiți vor fi structurate pe nestructurate. Pentru datele nestructurate, puteți alege baze de date SQL, deoarece puteți stoca datele în rânduri formate dintr-un set de atribute. Pentru datele nestructurate, unde nu există atribute setate, puteți alege bazele de date NoSQL. În ceea ce privește baza de date în care să salvați datele, pentru SQL puteți alege MySQL sau Postgres. Amazon RDS oferă baze de date on-the-cloud unde vă puteți stoca datele și puteți plăti în funcție de utilizare.

Pentru NoSQL, puteți alege una dintre soluțiile lor complet gestionate și extrem de rapide, cum ar fi DynamoDb sau ElasticSearch . Diferitele baze de date au avantaje care oferă o recuperare rapidă, unele oferă stocare mai ieftină per TB . Baza de date pe care o alegeți depinde de cazul dvs. de utilizare specific și, prin urmare. Sunt necesare câteva cercetări în acest sens înainte de a vă decide asupra uneia. În cazul în care trebuie să stocați imagini răzuite și videoclipuri mari, puteți utiliza AWS S3 sau Glacier . Acesta din urmă este folosit atunci când doriți să stocați cantități masive de date într-un format arhivat. Nu ar trebui să accesați des, în timp ce prima este soluția mai folosită. Acesta acționează ca un hard disk online. Puteți crea foldere și puteți salva fișiere în ele.

Strategia de curățare a datelor

4. Creați o listă de pagini web sau scrieți un regex pentru răzuirea datelor

În timp ce vă puteți testa codul pe o singură pagină web, trebuie să doriți să accesați cu crawlere zeci sau sute de pagini din cauza cărora desfășurați acest proiect. De obicei, dacă intenționați să accesați cu crawlere câteva pagini web, puteți salva linkurile într-o matrice și puteți trece peste ele atunci când răzuiți paginile. O soluție mai bună și mai des folosită este utilizarea unei expresii regex . Mai simplu spus, este o modalitate programatică de a identifica site-uri web cu structuri URL similare.

De exemplu, este posibil să doriți să accesați cu crawlere datele despre produse ale tuturor laptopurilor de pe Amazon. Acum puteți vedea că toate adresele URL încep cu „ www.amazon.com/laptop/ <laptopModelNo>/prodData”. Puteți replica acest format folosind regex, astfel încât toate aceste adrese URL să fie extrase și funcția dvs. de web scraping să ruleze numai pe aceste adrese URL . Și nu toate adresele URL de pe site-ul Amazon. În cazul în care aveți prea multe pagini web de accesat cu crawlere, vă recomandăm să utilizați o abordare de procesare paralelă pentru a accesa cu crawlere aproximativ zece pagini web în orice moment . Dacă răzuiți pagini web și extrageți link-uri din ele, apoi răzuiți paginile web la care duc acele link-uri, atunci puteți utiliza o abordare de tip arbore pentru a accesa cu crawlere mai multe pagini copil care decurg dintr-o pagină web rădăcină în același timp.

Regex

5. Scrieți codul și testați

Tot ce am discutat până acum a fost pregătirea. Pentru actul final de a rula codul și de a finaliza treaba. Codul web scraping rareori funcționează exact așa cum vă așteptați. Acest lucru se datorează faptului că nu toate paginile web pe care încercați să le accesați cu crawlere ar avea aceeași structură. De exemplu, rulați codul de scraping pe 100 de pagini de produse și găsiți că doar 80 dintre ele au fost eliminate. Motivul din spatele acestui lucru este că 20 de pagini pot fi în starea epuizată, iar structura paginii lor web este diferită. Astfel de excepții nu vor fi luate în considerare atunci când scrieți codul. Dar după câteva iterații, puteți face modificările necesare. Și extrageți date din toate paginile web de care aveți nevoie.

Testul codului

Metode alternative de colectare a datelor

Utilizați funcția Excel Filter pentru a răzui datele

Acesta este cel mai simplu mod de a răzui date de pe orice pagină web. Nu necesită instrumente suplimentare, cu excepția Excelului și nu va lăsa amprentă pe site-ul dvs. țintă sau pe sistemul dvs., adică nu se fac apeluri API, nu sunt setate cookie-uri etc. Dacă aveți acces la un PC/Mac cu Excel instalat, acesta este de departe. cel mai simplu mod de a răzui date.

Cum functioneaza

În Excel, deschideți o foaie nouă și scrieți adresa URL a site-ului țintă în prima celulă (de exemplu, http://www.joes-hardware-store.com/). În celula următoare, introduceți o formulă de filtru de date HTML sau XPath (consultați tabelul de mai jos pentru formula de filtru de date XPath utilizată în acest exemplu) care va extrage date de pe pagina web țintă. Dacă doriți să răzuiți mai multe coloane de date, repetați Pasul 1 pentru fiecare coloană de date și puneți-le una lângă alta.

Cum să obțineți filtre de date XPath în Excel

În Excel, faceți clic pe Fișier > Opțiuni > Avansat, apoi accesați secțiunea Afișare. Bifați caseta de lângă „Afișați fila Dezvoltator în panglică”, apoi faceți clic pe OK. Acest lucru este afișat în captura de ecran 1 de mai jos:

În Excel, faceți clic pe Dezvoltator > Referință, apoi derulați în jos și găsiți Microsoft XML Document 3.0 (după cum se arată în captura de ecran 2 de mai jos):

Faceți clic pe MSXML3 Apress apoi faceți clic pe OK (așa cum se arată în captura de ecran 3 de mai jos):

Acum că avem Referința MSXML3 instalată, să încercăm. În Excel, introduceți adresa URL a paginii web țintă în celula A1 și apoi o formulă XPath Data Filter în celula B1 (de exemplu, pentru a obține prețul articolului „123” pe o pagină web, puneți formula XPath Data Filter în celula B1, așa cum se arată în capturile de ecran 4 și 5 de mai jos):

Acum, copiați conținutul celulei B1 în toate celulele rămase folosind comanda rapidă CTRL+C din Excel. Acest lucru este afișat în captura de ecran 6 de mai jos:

Copiați adresa URL a paginii web țintă (în celula A1) în bara de adrese din Excel. Apăsați Enter pentru a-l încărca în browser și pentru a vedea ca datele dvs. să apară magic în Excel

După cum puteți vedea, acesta este un mod extrem de eficient de a răzui datele. Nu a mai rămas nicio amprentă pe site-ul web țintă sau pe sistemul dvs., adică nu sunt efectuate apeluri API, nu sunt setate cookie-uri etc.

Utilizați funcția Text-to-Columns din Microsoft Word pentru a separa datele după coloană

Această metodă este puțin mai complicată decât prima, dar poate fi folosită pentru a răzui date de pe orice site web care are coloane clar definite. Este nevoie de MS Word și Excel plus câteva instrumente suplimentare care sunt descrise mai jos. Vestea bună este că această metodă lasă amprentă pe site-ul dvs. țintă, așa că dacă răzuiți site-uri web în scopuri de marketing și doriți să evitați detectarea, această metodă nu este pentru dvs.

Cum functioneaza

În MS Word, creați un document nou, de exemplu Instrumentul de răzuire a listelor de produse din magazinul de hardware Joe, apoi copiați/lipiți pagina web țintă în caseta de text (vezi captura de ecran 1 de mai jos). Selectați funcția Goto în MS Word apăsând CTRL + G apoi tastați exact <<!DOCTYPE HTML [ENTER]. Acest lucru este afișat în captura de ecran 2 de mai jos:

Selectați funcția Run în MS Word apăsând ALT + F5 (așa cum se arată în captura de ecran 3) și ar trebui să vedeți similar cu acesta (vezi captura de ecran 4 de mai jos):

În Excel, selectați Filtre > Text în coloane așa cum se arată în captura de ecran 5 de mai jos:

Selectați Delimitat, apoi alegeți separatorul dvs. delimitat din meniul derulant (pentru acest exemplu, folosim virgulă, care este selectată implicit).

Acum, faceți clic pe Următorul și definiți locația „virgulelor”, adică separați datele dvs. web în coloane (de exemplu, folosesc „,” ca separator). Apoi, faceți clic pe Următorul și definiți cum doriți ca Excel să gestioneze celulele goale, adică să le ignore sau să le înlocuiască cu o valoare goală (pentru acest exemplu, o vom seta la „ignora valorile goale”). Apoi, faceți clic pe Terminare pentru a finaliza funcția Text-to-Columns.

Dacă pagina dvs. web țintă nu are coloane clar definite, vă recomandăm să o setați la „Valori de înlocuire”, așa cum se arată în captura de ecran 6 de mai jos:

După cum puteți vedea din captura de ecran 7 de mai sus, datele mele au fost separate cu succes în coloane individuale de text și acum le pot copia/lipi cu ușurință într-o altă locație de pe computerul meu.

Această metodă este deosebit de utilă pentru extragerea datelor din fișierele PDF care au, de obicei, titluri de coloană clar definite. Vă va economisi mult timp dacă scopul dvs. este să extrageți automat date din mai multe fișiere PDF utilizând macrocomenzi Excel, deoarece acum puteți utiliza același șablon MS Word din nou și din nou pentru a crea rapid mai multe documente pentru fiecare fișier PDF. 3. Utilizați Editorul MS Excel VBA pentru a răzui datele folosind

Pentru această metodă, vom folosi un instrument numit xvba care poate fi descărcat de aici și funcționează la fel ca un API (Application Program Interface). Vestea bună este că nu trebuie să scrieți deloc cod. Vestea proastă este că trebuie să tastați codul HTML al paginii dvs. web țintă, adică aș sugera să faceți acest lucru folosind MS Word, deoarece vă va forța să descompuneți pagina web în componentele sale (vezi captura de ecran 1 de mai jos).

Numerele din paranteze pătrate sunt celule individuale dintr-o foaie de calcul în care titlurile de coloană și rând au fost folosite ca nume pentru fiecare câmp de date. Acestea acționează ca variabile, adică sunt tratate ca text de Excel și se vor modifica în funcție de modul în care a fost structurată foaia de calcul (de exemplu, dacă selectați o altă coloană pentru a filtra datele).

Utilizați IMPORTXML în foi de calcul Google

Când utilizați IMPORTXML pentru a extrage date dintr-o pagină web, primul pas este să deschideți Foi de calcul Google . Al doilea pas este să accesați Instrumente > Editor de scripturi. Al treilea pas este să copiați/lipiți codul HTML al site-ului dvs. țintă în caseta de text, așa cum se arată în captura de ecran 7 de mai jos:

După cum puteți vedea din captura de ecran 8 de mai sus, datele mele au fost separate cu succes în coloane individuale de text și acum le pot copia/lipi cu ușurință într-o altă locație de pe computerul meu. Am folosit această metodă în trecut pentru a colecta datele Facebook și Twitter pentru o campanie de marketing online. Este, de asemenea, o modalitate bună de a răzui datele de pe site-urile web care folosesc AJAX atunci când nu doriți să utilizați comanda GOTO.

Utilizați IMPORTHTML în Foi de calcul Google

Această metodă este similară cu metoda numărul 3, dar în loc să folosim IMPORTXML , vom folosi IMPORTHTML . Primul pas este să deschideți Foi de calcul Google. Al doilea pas este să accesați Instrumente > Editor de scripturi. Al treilea pas este să copiați/lipiți codul HTML al site-ului dvs. țintă în caseta de text.

Folosind extensii Chrome

Puteți răzui datele web folosind extensii Chrome, cum ar fi Data Scraper și Save To CSV. Deoarece există o versiune gratuită și plătită a extensiilor Chrome (Data Scraper), aș sugera să aveți ambele pentru a vedea care dintre ele funcționează mai bine pentru dvs.

Concluzie

Răzuiți până la câteva sute de pagini (asigurându-vă în același timp că lăsați un interval de câteva secunde între fiecare rulare). Scrapingul unui site web o dată pe lună ar funcționa bine cu o soluție DIY scrisă în Python. Dar, în cazul în care sunteți în căutarea unei soluții DaaS de nivel enterprise, echipa noastră de la PromptCloud oferă o soluție end-to-end în care ne oferiți cerința și vă înmânăm datele pe care apoi le puteți conecta și reda.

Infrastructură, management proxy, asigurându-vă că nu vă blocați în timp ce răzuiți datele. Rularea motorului de scraping la o frecvență regulată pentru a actualiza datele. De asemenea, facem modificări pentru a adapta modificările făcute în interfața de utilizare a site-ului web în cauză. Totul este gestionat în soluția noastră complet gestionată . Acesta este un serviciu bazat pe cloud cu plată pe utilizare. Acest lucru va îndeplini toate cerințele dvs. de web scraping. Indiferent dacă vă ocupați de un startup, un MNC sau aveți nevoie de date pentru munca dvs. de cercetare. Avem soluții de data scraping pentru toți.