# Web scraping

Web scraping (de l'anglès to scrap 'rasclar') é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 del 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 o Mozilla Firefox. 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 se centra més en la transformació de les dades no estructurades 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. El web scraping també està relacionat amb l'automatització del web, que simula la navegació humana utilitzant software d'ordinador. Algun dels usos principals del web scraping són la comparació de preus en botigues, monitorar dades relacionades amb el clima de certa regió, detectar canvis en llocs webs o la integració de dades en llocs web.

## Tècniques

El web scraping és el procés de recopilar informació de forma automàtica del web. És un camp amb desenvolupaments actius, que comparteix un propòsit en comú amb la visió del web semàntic. Utilitza solucions pràctiques basades en tecnologies ja existents. Hi ha diferents nivells d'automatització que les existents tecnologies de web scraping poden oferir:
* Copiar-i-enganxar humà: algunes vegades fins i tot les millors tècniques de web scraping no poden reemplaçar l'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 a fer 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 a analitzar el format HTML.
* Protocol HTTP: 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.
* Intèrprets d'HTML: alguns llenguatges, com XQuery i HTQL poden ser utilitzats per a analitzar documents, recuperar i transformar el contingut de documents HTML.
* Aplicacions per a 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 analitzem el DOM del document. Altrament, les anotacions, organitzades en una capa semàntica, són emmagatzemades i manejades de manera 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

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 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 l'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 American Airlines i una empresa anomenada FareChase. American Airlines va guanyar aquella batalla, fent que FareChase parés de vendre un programari que 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é FareChase i 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 a 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è aquests factors afecten el propietari del lloc web.

## Mesures tècniques per detenir els scrapers

L'administrador d'un lloc web pot utilitzar diverses tècniques per a 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ú.
* Monitorar l'excés de trànsit provinent de certa IP.
* Afegir un CAPTCHA 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 d'aquests als llocs webs.
* Serveis comercials contra el correu brossa (spam). Moltes companyies, com Distil, SiteBlackBox i Sentor, ofereixen serveis antibot i antiscraping.
* 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

* ↑ "Descarga d'Internet Explorer" a Windows Microsoft
* ↑ Descarga de Mozilla Firefox a Mozilla.org
* ↑ Explicació amplia de potrocol HTTP a kioskea.net
* ↑ Web oficial de CAPTCHA a captcha.net