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:06] lidia_alos Afegir informació (seguiment del tema) |
webscraping_apache [2022/08/01 07:05] (actual) lidia_alos [Eines de scraping per a Python] |
||
|---|---|---|---|
| Línia 324: | Línia 324: | ||
| ===== Limitacions tècniques del web scraping ===== | ===== Limitacions tècniques del web scraping ===== | ||
| - | Per als operadors de les pàgines web sol ser avantatjós limitar les possibilitats de scraping automàtic en el seu contingut en línia. D'una banda, perquè l' | + | Per als operadors de les pàgines web sol ser **avantatjós limitar les possibilitats de scraping automàtic en el seu contingut en línia**. D'una banda, perquè l' |
| - | Per limitar l' | + | Per limitar l' |
| A continuació, | A continuació, | ||
| Comandes: | Comandes: | ||
| - | ==== # Qualsevol bot | + | |
| - | User-agent: * | + | User-agent: * |
| - | # Excloure tot el directori principal | + | # Excloure tot el directori principal |
| - | Disallow: / | + | Disallow: / |
| - | ==== | + | |
| - | El fitxer robots.txt només actua com a mesura de seguretat ja que convida a una limitació voluntària per part dels bots, que s' | + | |
| + | El fitxer robots.txt només actua com a mesura de seguretat ja que convida a una limitació voluntària per part dels bots, que s' | ||
| ===== 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. | ||
| + | </ | ||
| + | |||