Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
webscraping_apache [2022/08/01 06:32] lidia_alos [Limitacions tècniques del web scraping] |
webscraping_apache [2022/08/01 07:05] (actual) lidia_alos [Eines de scraping per a Python] |
||
---|---|---|---|
Línia 341: | Línia 341: | ||
===== Les API com a alternativa al web scraping ===== | ===== Les API com a alternativa al web scraping ===== | ||
- | Tot i la seva efectivitat, | + | Tot i la seva efectivitat, |
L'ús d'una API ofereix avantatges importants: | L'ús d'una API ofereix avantatges importants: | ||
Línia 349: | Línia 349: | ||
Sempre que hi hagi una API disponible i que ofereixi dades completes, aquest serà **el millor mètode per accedir a la informació**, | Sempre que hi hagi una API disponible i que ofereixi dades completes, aquest serà **el millor mètode per accedir a la informació**, | ||
+ | |||
+ | ===== Eines de scraping per a Python ===== | ||
+ | |||
+ | L' | ||
+ | * Scrapy | ||
+ | * Selenium | ||
+ | * BeautifulSoup | ||
+ | |||
+ | A continuació, | ||
+ | |||
+ | **Web scraping amb Scrapy** | ||
+ | |||
+ | Scrapy, una de les eines per fer web scraping amb Python que presentem, utilitza un analitzador sintàctic o **parser HTML** per extreure dades del text font (en HTML) de la web seguint aquest esquema: | ||
+ | |||
+ | URL → Solicitud HTTP → HTML → Scrapy | ||
+ | | ||
+ | El concepte clau del desenvolupament de scrapers amb Scrapy són els anomenats web spiders, programes de scraping senzills i basats en Scrapy. **Cada spider (aranya) està programat per scrapejar una web concreta** i es va despenjant de pàgina a pàgina. La programació utilitzada està orientada a objectes: cada spider és una classe de Python pròpia. | ||
+ | |||
+ | A més del paquet de Python en si, la instal·lació de Scrapy inclou una eina de línia d' | ||
+ | |||
+ | Scrapy és una plataforma consolidada per aplicar tècniques de web scraping amb Python. La seva arquitectura està **orientada a les necessitats de projectes professionals**. Scrapy compta, per exemple, amb una canonada o pipeline integrada per processar les dades extretes. L' | ||
+ | |||
+ | **Web scraping amb Selenium** | ||
+ | |||
+ | El programari lliure Selenium és un // | ||
+ | |||
+ | A diferència de Scrapy i BeautifulSoup, | ||
+ | |||
+ | URL → Sol·licitud HTTP → HTML → Selenium → DOM | ||
+ | |||
+ | Com que el DOM es genera de manera dinàmica, Selenium permet **scrapejar també pàgines el contingut de les quals ha estat generat mitjançant JavaScript**. L´accés a continguts dinàmics és l´avantatge més important de Selenium. En termes pràctics, Selenium també es pot fer servir en combinació amb Scrapy o amb BeautifulSoup: | ||
+ | |||
+ | URL → Sol·licitud HTTP → HTML → Selenium → DOM → HTML → Scrapy / BeautifulSoup | ||
+ | |||
+ | **Web scraping amb BeautifulSoup** | ||
+ | |||
+ | De les tres eines que presentem **per fer web scraping amb Python, BeautifulSoup és la més antiga**. Igual que en el cas de Scrapy, es tracta d'un parser o analitzador sintàctic HTML. El web scraping amb BeautifulSoup té la següent estructura: | ||
+ | |||
+ | URL → Sol·licitud HTTP → HTML → BeautifulSoup | ||
+ | |||
+ | Tot i això, a diferència de Scrapy, a BeautifulSoup el desenvolupament de l' | ||
+ | |||
+ | <WRAP center round important 100%> | ||
+ | ===== En resum ===== | ||
+ | **Quina eina hauries de triar pel teu projecte?** En resum: escull **BeautifulSoup** si necessites un desenvolupament ràpid o si vols familiaritzar-te primer amb els conceptes de Python i de web scraping. **Scrapy**, per la seva banda, et permet realitzar complexes aplicacions de web scraping a Python si disposes dels coneixements necessaris. **Selenium** serà la teva millor opció si la teva prioritat és extreure continguts dinàmics amb Python. | ||
+ | </ | ||
+ |