web-scraping-caotico/README.md

104 lines
3.7 KiB
Markdown
Raw Normal View History

2017-11-07 00:07:22 +01:00
# Anche i robot navigano il web
2017-11-07 00:13:55 +01:00
~web scraping, estrarre informazioni da Internet~
2017-10-03 00:56:56 +02:00
## intro
2017-11-07 00:07:22 +01:00
- cosa c'e' sull'internet
- informazioni
- risorse
- servizi
2017-10-03 00:56:56 +02:00
- web vs web browser
- analisi di una richiesta HTTP
- dimostrazione con cUrl
- estrazione
2017-10-03 01:02:08 +02:00
- superficie: panoramica possibili utilizzi
2017-10-03 00:56:56 +02:00
- tecniche
- ostacoli e limitazioni
- tecnico-pratiche
- legali*
- inserimento
2017-10-03 01:02:08 +02:00
- superficie: panoramica possibili utilizzi
2017-10-03 00:56:56 +02:00
- tecniche e ostacoli come da estrazione
- motivazioni
- pratiche
- reperibilita' offline
- far sopravvivere la fruizione ai provider attuali dei contenuti
- costruzione di soluzioni utente-centriche
- politiche
- liberare le informazioni
- artistiche
- manipolare le informazioni per caricarle di altro significato
(*) need halp
2017-10-03 01:02:08 +02:00
2017-10-03 00:56:56 +02:00
## pratica 1: cUrl
## (?)pratica 1.5: greasemonkey
## pratica 2: scrapy
## pratica 3: PhantomJs/CasperJs
2017-10-03 01:02:08 +02:00
## (???)pratica 4: selenium/watir
2017-11-07 00:07:22 +01:00
**tbd: obiettivi scraping per workshop**
___
#cosa c'e' sull'internet
- informazioni
- servizi
- persone che ne fruiscono
2017-11-07 00:13:55 +01:00
### Informazioni
2017-11-07 00:07:22 +01:00
Le informazioni descrivono la realta' in cui viviamo e sono la base su cui prendiamo delle decisioni. Sono facili da quantificare. Sono facili da manipolare.
2017-11-07 00:13:55 +01:00
#### Tipi di informazione che si trova sull' internet
2017-11-07 00:07:22 +01:00
(in ordine dalla piu' alla meno rara)
2017-11-08 23:05:47 +01:00
- edita o elaborata (libri, film, tracce musicali, articoli di un blog) - alto valore intrinseco.
- non elaborata (informazioni metereologiche, post su facebook, ) - basso valore intrinseco.
- metainformazione - (log di un server web/DNS) - valore intrinseco nullo
#### Manipolazione
La manipolazione dell'informazione la carica di valore, la spiega, la rende fruibile. Invormazioni di tipo diverso necessitano tipi di manipolazione diversi per acquistare valore intrinseco.
Ad esempio un log di Apache (server web):
```64.242.88.10 - - [07/Mar/2004:16:05:49 -0800] "GET /twiki/bin/edit/Main/Double_bounce_sender?topicparent=Main.ConfigurationVariables HTTP/1.1" 401 12846```
per assumere significato deve essere contestualizzato con altre informazioni su:
- utente a cui corrisponde l'indirizzo IP
- contenuti a cui corrisponde il percorso
- altri log a cui associarlo per riprodurre la history di navigazione dell'utente
2017-11-07 00:07:22 +01:00
2017-11-07 00:13:55 +01:00
### Manipolare l'informazione
2017-11-07 00:07:22 +01:00
*parabola:
Giangiorgino si sveglia tutte le mattine per andare a prendere lo stesso treno che -di tanto in tanto- non arriva alla stazione per l'orario previsto.
Quando questo succede Giangiorgino deve correre per prendere un autobus e due tram se vuole sperare di arrivare a destinazione entro la stessa ora -cosa che solitamente non riesce a fare-.
Giangiorgino, pensandoci su, capisce di avere le seguenti opzioni:
- svegliarsi mezz'ora prima ogni giorno
- scaricare l'ultima App Trenissimissimo che gli invia ogni ora di ogni giorno notifiche in tempo reale sullo stato dei 36 treni circolanti sulla tratta
- **manipolare l'informazione***
2017-11-08 00:03:01 +01:00
Manipolare l'informazione significa modificarla, filtrarla e combinarla con altra informazione al fine di darle nuovo significato.
2017-11-07 00:07:22 +01:00
2017-11-08 00:03:01 +01:00
*Giangiorgino vuole solo sapere se il *suo* treno arriverà in ritardo, e lo vuole sapere prima di fissare la sveglia*
Ecco quindi che il processo ripetitivo di:
- a una data ora visitare il sito trenissimissimo.com
- verificare lo stato di percorrenza del treno
- scegliere il percorso ottimale
- fissare la sveglia di conseguenza
Può essere facilmente delegato a un robot, un processo che una volta avviato è in grado di proseguire la sua esecuzione senza l'intervento di un umano.
Nell'internet, esistono diversi tipi di (ro)bot che navigano la rete in cerca d'informazione, tra cui:
- motori di ricerca
- aggregatori
- id scanner (i.e. EC2 bot)