Web scraping

De Viquipèdia
Dreceres ràpides: navegació, cerca

Web scraping és una tècnica de programari o software informàtic per extreure informació dels llocs web. En general, aquest tipus de programes de software simulen l'exploració humana de la World Wide Web, ja sigui amb la implementació de baix nivell de protocol de transferència d'hipertext (HTTP), o amb la incorporació d'un navegador web, com pot ser Internet Explorer[1] o Mozilla Firefox.[2] El web scraping està molt relacionat amb la indexació de la web, que indexa informació de la web utilitzant un robot. Aquesta tècnica és una tècnica universal adoptada per la majoria dels motors de cerca. Per contra, el web scraping es centra més en la transformació de les dades no estructurats al web, generalment en format HTML, en dades estructurades que poden ser emmagatzemades i analitzades en una base de dades local, central o de full de càlcul. Web scraping també està relacionada amb l'automatització del web, que simula la navegació humana utilitzant softwere d'ordinador. Algun dels usos principals del web scraping són la comparació de preus en botigues, monitoritzar dades relacionades amb el clima de certa regió, detectar canvis en llocs webs o la integració de dades en llocs web.

Tècniques[modifica | modifica el codi]

Web scraping és el procés de recopilar informació de forma automàtica de la web. És un camp amb desenvolupaments actius, compartint un propòsit en comú amb la visió de la web semàntica. Utilitza solucions pràctiques basades en tecnologies ja existents. Existeixen diferents nivells d'automatització que les existents tecnologies de web scraping poden brindar:

  • Copiar -i- enganxar humà: algunes vegades fins i tot les millors tècniques de web scraping no poden reemplaçar la examinació manual d'un humà, i de vegades aquesta pot ser l'única via de solució quan el lloc que tenim al cap posa certes barreres per a evitar que es creuen programaris per realitzar tasques automàtiques en aquest.
  • Ús d'expressions regulars: una possible via per extreure informació de pàgines webs poden ser les expressions regulars, encara que comunament no es recomana utilitzar-les per parcejar el format HTML.
  • Protocol HTTP:[3] pàgines webs estàtiques i dinàmiques poden ser obtingudes fent peticions HTTP al servidor remot utilitzant sockets, etc.
  • Algorismes de mineria de dades: molts llocs webs tenen grans col·leccions de pàgines generades dinàmicament a partir d'una base de dades. Dades de la mateixa categoria apareixen usualment en pàgines similars mitjançant un script o una plantilla. En la mineria de dades, un programa detecta aquestes plantilles en un context específic i extreu el seu contingut.
  • Parsers d'HTML: alguns llenguatges, com XQuery i HTQL poden ser utilitzats per parcejar documents, recuperar i transformar el contingut de documents HTML.
  • Aplicacions per Web scraping: hi ha moltes aplicacions disponibles que poden ser utilitzades per personalitzar solucions de web scraping. Aquestes aplicacions puguin reconèixer automàticament l'estructura de certa pàgina o brindar una interfície a l'usuari on aquest pugui seleccionar els camps que són d'interès dins del document. D'aquesta manera no cal escriure manualment codi per realitzar aquestes tasques.
  • Reconeixement d'informació semàntica : Les pàgines que són analitzades podrien incloure metadades o certa informació semàntica com anotacions o comentaris, els quals poden ser usats comunament. Si aquestes anotacions estan en les mateixes pàgines, com succeeix amb els microformats, aquestes podrien ser d'utilitat quan parcegem el DOM del document. Altrament, les anotacions, organitzades en una capa semàntica, són emmagatzemades i manejades de forma separada des d'altres pàgines, de manera que els scrapers poden recuperar aquests esquemes i les instruccions des d'aquesta capa abans d'analitzar els documents.

Qüestions legals[modifica | modifica el codi]

El web scraping pot anar en contra dels termes d'ús d'alguns llocs webs. El compliment d'aquests termes no està totalment clar. Mentre que la duplicació d'expressions originals pot ser en molts casos il·legal, als Estats Units la cort va dictar en Feist Publications v. Rural Telephone Service[4] que la duplicació de fets està permesa. Les corts dels Estats Units en certes ocasions han reconegut que certs usos dels scrapers no haurien d'estar permesos. Podria considerar-se un ordinador com una propietat personal, aleshores el scraper estaria entrant sense autorització en aquesta propietat. En el cas més conegut, eBay vs Bidder’s Edge, la segona empresa va haver de parar de fer peticions automàtiques al lloc d'eBay. En aquest cas, Bidder’s Edge licitava automàticament per certs productes en aquest lloc. Una de les principals lluites al jutjats per scraping va involucrar a American Airlines i a una empresa anomenada FareChase. American Airlines va guanyar aquella batalla, fent que FareChase parés de vendre un programari que li permetia als usuaris comparar tarifes en línia si el lloc d'American Airlines era inclòs. L'aerolínia va dir que les recerques de FareChase entraven sense autorització en els servidors quan recopilaven la informació públicament disponible. Southwest Airlines també ha estat víctima de pràctiques de web scraping, ha involucrat també a FareChase i a una altra empresa anomenada Outtask. Encara que les decisions actualment preses no són uniformes, és difícil ignorar que un patró està emergint, en el qual podem veure que les corts estan preparant-se per protegir el contingut propietari en llocs webs comercials, preveient d'aquesta manera que aquest sigui utilitzat sense el consentiment dels propietaris dels llocs. No obstant això, el grau de protecció d'aquests continguts encara no està establert. Dependrà del tipus d'accés realitzat pels scrapers, de la quantitat d'informació recopilada i del grau en què afecten aquests factors al propietari del lloc web.


Mesures tècniques per detenir els scrapers[modifica | modifica el codi]

L'administrador d'un lloc web pot utilitzar diverses tècniques per aturar o disminuir les comandes dels scrapers. Algunes tècniques inclouen:

  • Afegir entrades al fitxer robots.txt. Google i altres bots poden ser detinguts d'aquesta manera.
  • Bloquejar l'adreça IP. Això també bloquejarà tots els accessos des d'aquesta mateixa IP, de manera que els usuaris no podran navegar pel lloc web si accedeixen des d'aquesta.
  • Inhabilitar qualsevol API que el lloc web pogués estar brindant.
  • Els bots o scrapers algunes vegades declaren qui són, i gràcies a això poden ser bloquejats. «googlebot» és un exemple. Alguns scrapers no fan distinció entre ells i un navegador comú.
  • Monitoritzar l'excés de trànsit provinent de certa IP.
  • Afegir un CAPTCHA[5] o un altre sistema de verificació manual al lloc web. No es garanteix el complet bloqueig dels scrapers, però mitjançant aquesta tècnica es dificulta l'accés dels mateixos als llocs webs.
  • Serveis comercials anti – spam. Moltes companyies, com Distil, SiteBlackBox i Sentor, ofereixen serveis anti - bot i anti - scraping.
  • Incrementar Javascript i AJAX. D'aquesta forma és més difícil per als scrapers simular les peticions com si fossin un navegador comú.

Referències[modifica | modifica el codi]