Web Scraping cu Python: un ghid pentru începători
Publicat: 2016-10-10În lumea Big Data, serviciile de Web Scraping sau de extracție a datelor sunt cerințele principale pentru Big Data Analytics. Extragerea datelor de pe web a devenit aproape inevitabilă pentru ca companiile să rămână în afaceri. Următoarea întrebare care apare este cum să faci scraping web ca începător.

Datele pot fi extrase sau răzuite dintr-o sursă web folosind o serie de metode. Site-urile web populare precum Google, Facebook sau Twitter oferă API-uri pentru a vizualiza și extrage datele disponibile într-o manieră structurată. Acest lucru previne utilizarea altor metode care ar putea să nu fie preferate de furnizorul API. Cu toate acestea, cererea de a accesa cu crawlere un site web apare atunci când informațiile nu sunt oferite cu ușurință de site-ul web. Python, un limbaj de programare open-source este adesea folosit pentru Web Scraping datorită ecosistemului său simplu și bogat. Conține o bibliotecă numită „BeautifulSoup” care realizează această sarcină. Să aruncăm o privire mai profundă asupra web scraping folosind python.
Configurarea unui mediu Python:
Pentru a efectua web scraping folosind Python, mai întâi va trebui să instalați Python Environment, care vă permite să rulați cod scris în limbajul Python. Bibliotecile realizează data scraping;
Beautiful Soup este o bibliotecă python convenabilă de utilizat. Este unul dintre cele mai bune instrumente pentru extragerea de informații dintr-o pagină web. Profesioniștii pot accesa cu crawlere informațiile din paginile web sub formă de tabele, liste sau paragrafe. Urllib2 este o altă bibliotecă care poate fi folosită în combinație cu biblioteca BeautifulSoup pentru preluarea paginilor web. Pot fi adăugate filtre pentru a extrage informații specifice din paginile web. Urllib2 este un modul Python care poate prelua adrese URL.
Pentru MAC OSX:
Pentru a instala biblioteci Python pe MAC OSX, utilizatorii trebuie să deschidă un terminal Win și să tastați următoarele comenzi, o singură comandă la un moment dat:
sudoeasy_install pip
pip install BeautifulSoup4
pip install lxml
Pentru utilizatorii de Windows 7 și 8:
Utilizatorii Windows 7 și 8 trebuie să se asigure că mediul Python este instalat mai întâi. Odată ce mediul este instalat, deschideți promptul de comandă și găsiți modalitatea de a roota directorul C:/ și tastați următoarele comenzi:
easy_install BeautifulSoup4
easy_installlxml
Odată ce bibliotecile sunt instalate, este timpul să scrieți un cod de date scraping.
Rularea Python:
Scraping-ul de date trebuie făcut pentru un obiectiv distinct, cum ar fi accesarea cu crawlere a stocului curent al unui magazin cu amănuntul. În primul rând, este necesar un browser web pentru a naviga pe site-ul web care conține aceste date. După identificarea tabelului, faceți clic dreapta oriunde pe acesta și apoi selectați elementul de inspectare din lista meniului vertical. Acest lucru va face ca o fereastră să apară în partea de jos sau în partea laterală a ecranului, afișând codul HTML al site-ului. Clasamentele apar într-un tabel. Poate fi necesar să scanați datele HTML până când găsiți linia de cod care evidențiază tabelul pe pagina web.
Python oferă alte alternative pentru scraping HTML în afară de BeautifulSoup. Ei includ:
- Scrapy
- Scrapemark
- Mecanizează
Web scraping convertește datele nestructurate din codul HTML în formă de date structurate, cum ar fi datele tabulare dintr-o foaie de lucru Excel. Web scraping se poate face în mai multe moduri, de la utilizarea Google Docs la limbaje de programare. Pentru persoanele care nu au cunoștințe de programare sau competențe tehnice, este posibil să achiziționeze date web utilizând servicii de web scraping care oferă date gata de utilizare de pe site-urile web preferate.
Etichete HTML:
Pentru a efectua web scraping, utilizatorii trebuie să aibă cunoștințe solide despre etichetele HTML. Ar putea ajuta foarte mult să știți că linkurile HTML sunt definite folosind eticheta de ancorare, adică eticheta <a>, „<a href=“https://…”>Legătura trebuie să fie aici </a>”. O listă HTML cuprinde lista <ul> (neordonată) și <ol> (ordonată). Elementul din listă începe cu <li>.
Tabelele HTML sunt definite cu <Tabel>, rândul ca <tr> și coloanele sunt împărțite în date ca <td>;
- <!DOCTYPE html> : un document HTML începe cu o declarație de tip de document
- Partea principală a documentului HTML în text simplu, neformatat, este definită de etichetele <body> și </body>
- Titlurile în HTML sunt definite folosind etichetele de titlu de la <h1> la <h5>
- Paragrafele sunt definite cu eticheta <p> în HTML
- Un întreg document HTML este cuprins între <html> și </html>
Utilizarea BeautifulSoup în răzuire:

În timpul răzuirii unei pagini web folosind BeautifulSoup, principala preocupare este identificarea obiectivului final. De exemplu, dacă doriți să extrageți o listă de pe pagina web, este necesară o abordare în pas:
- Primul și cel mai important pas este să importați bibliotecile necesare:
#import biblioteca folosită pentru a interoga un site web
import urllib2
#specificați adresa URL wiki = „https://”
#Interogați site-ul și returnați codul html la variabila „pagină”
pagina = urllib2.urlopen(wiki)
#import funcțiile Beautiful supa pentru a analiza datele returnate de pe site
de la bs4 import BeautifulSoup
#Analizați codul html în variabila „pagină” și stocați-l în format Beautiful Soup
supa = BeautifulSup(pagina)
- Utilizați funcția „prettify” pentru a vizualiza structura imbricată a paginii HTML
- Lucrul cu etichetele Supa:
Supa<eticheta> este folosită pentru returnarea conținutului între eticheta de deschidere și de închidere, inclusiv eticheta.
- În[30]:soup.title
Out[30]:<title>Lista președinților din India până în 2010 – Wikipedia, enciclopedia liberă</title>
- soup.<tag>.string: returnează șirul în eticheta dată
- În [38]:soup.title.string
- Out[38]:u „Lista președinților din India și Brazilia până în 2010 în India – Wikipedia, enciclopedia liberă”
- Găsiți toate linkurile din etichetele <a> ale paginii: etichetați un link folosind eticheta „<a>”. Deci, mergeți cu opțiunea soup.a și ar trebui să returneze linkurile disponibile în pagina web. Hai să o facem.
- În [40]:ciorbă.a
Out[40]:<a id="top”></a>
- Găsiți masa potrivită:
Deoarece se caută un tabel pentru a aduna informații despre președinții din India și Brazilia până în 2010, este important să se identifice mai întâi tabelul potrivit. Iată o comandă pentru accesarea cu crawlere a informațiilor incluse în toate etichetele de tabel.
all_tables= sup.find_all('tabel')
Identificați tabelul potrivit utilizând atributul „clasă” al tabelului care trebuie să filtreze tabelul potrivit. După aceea, inspectați numele clasei făcând clic dreapta pe tabelul necesar al paginii web, după cum urmează:
- Inspectează elementul
- Copiați numele clasei sau găsiți numele clasei din tabelul din dreapta din rezultatul ultimei comenzi.
right_table=soup.find('table', class_='wikitable sortable plainrowheaders')
tabel_dreapta
Așa putem identifica masa potrivită.
- Extrageți informațiile în DataFrame: este nevoie să parcurgeți fiecare rând (tr) și apoi să atribuiți fiecare element al tr (td) unei variabile și să o adăugați la o listă. Să analizăm structura HTML a tabelului. (extrage informații pentru titlul tabelului <th>)
Pentru a accesa valoarea fiecărui element, este necesar să folosiți opțiunea „găsiți(text=True)” cu fiecare element. În cele din urmă, există date în cadrul de date.
Există diverse alte modalități de accesare cu crawlere a datelor folosind „BeautifulSoup” care reduc eforturile manuale de a colecta date de pe paginile web. Codul scris în BeautifulSoup este considerat a fi mai robust decât expresiile regulate. Metoda de scraping web pe care am discutat-o folosește bibliotecile „BeautifulSoup” și „urllib2” în Python. Acesta a fost un scurt ghid pentru începători pentru a începe să utilizați Python pentru web scraping.
Rămâneți la curent cu următorul nostru articol despre modul în care scrapingul web vă afectează creșterea veniturilor.
Plănuiți să achiziționați date de pe web pentru știința datelor? Suntem aici pentru a vă ajuta. Anunțați-ne despre cerințele dvs.
