Lascia che ti chieda questo, se fossi proprietario di un sito web.
Vorresti che le persone raschiassero il tuo sito web?
Vorresti che le persone accedano ai tuoi dati, forse al tuo Airbnb e tu hai lavorato duramente per elencare questi
prodotti, diverse informazioni qui, è giusto che chiunque possa venire a prendere queste informazioni e magari fare
una copia del tuo sito web?
Ma non è proprio vero?
Voglio dire, dipende la maggior parte delle volte che non vuoi che le persone raschiano il tuo sito web.
Sebbene HTML e i dati di un sito Web siano disponibili per tutti noi, è proprio il modo in cui funziona Internet in modo che le
persone possano vedere diverse pagine Web, la maggior parte dei siti Web non vuole davvero che tu raschi i loro dati.
Ora, in realtà c'è un modo in cui i siti web ti dicono cosa puoi e cosa non puoi raschiare.
Si chiama testo punto robot.
Diciamo semplicemente alla fine di una barra URL.
Robot punto t t clic, invio.
Guarda un po', Airbnb ha un robot.
I robot di testo non tassati dicono semplicemente, ehi, se sei un robot, se sei un raschiatore di ragnatele o un ragno.
Questo è il motivo per cui ti è permesso e non ti è permesso fare, significa che ce lo impediranno se infrangiamo le
regole?
No, non possono davvero impedircelo.
Ma questa è un'area grigia in cui vuoi essere etico qui e raschiare solo i dati che un sito Web ti consente.
Quindi, se osserviamo il testo di Roboshark, vedi qui che Airbnb ha creato un file fiscale che ci dice cosa
puoi e non puoi raschiare.
Ad esempio, guardiamo l'agente utente qui, che dice che il bot di Google che Airbnb sta dicendo, ehi,
bot di Google, puoi raschiare queste informazioni, ma non ti permettiamo di raschiare il calendario degli alumni dell'account e vedi che ci sono
molte cose che non sono consentite.
E il bot di ricerca di Bing?
Beh, allora puoi farlo tu, ma lui no.
Raschia uno di questi dati.
Abbiamo la scheda Yandex.
Cos'altro abbiamo, abbiamo Biddu Spider.
E poi abbiamo anche la star dell'agente utente, il che significa che chiunque altro, chiunque altro, ti è permesso
di raschiare questo, ma nessuna di queste informazioni.
Va bene, andiamo da un altro, andiamo da te, Demi Dotcom.
Qui vediamo che non vogliamo che tu raschi o strisci attraverso nessuna di queste informazioni,
ma ti permettiamo di accedervi.
API 2. 0, ovviamente, componenti di atterraggio, va bene, quindi è un peccato.
Sembra che Udemy non ci permetta di fare altro che questa API 2. 0 cosa, che tornerà.
Che dire di Hacker News, costruiremo un progetto attorno a Hacker News, quindi vediamo se Hacker
News ci permette di smantellarlo.
Va bene, quindi questa lista è un po' più piccola.
Lo vediamo per tutti gli utenti.
Non siamo autorizzati a utilizzare questi endpoint.
Quindi sta dicendo che finché non usi questi una volta che questi altri, siamo a posto.
Cioè se volessimo raschiare solo la homepage.
Che è proprio qui, va bene se stiamo cercando di, diciamo, andare ai commenti.
Va bene anche questo, perché questo non era nel testo del robot, di nuovo, se ricordi, se andiamo al testo
del punto dei robot.
Va bene.
L'unica cosa che chiedono è che abbiamo un ritardo di scansione di 30, ovvero se stiamo per eseguire la scansione del
loro sito Web, dovremmo fare una pausa in modo da non utilizzare costantemente programmi per accedere al sito Web perché, bene, questo sovraccaricherà
i loro server e forse rallenterà il loro sito web.
Quindi cosa abbiamo appena imparato, abbiamo imparato che ci sono modi etici e non etici di raschiare i siti web.
Sì, puoi raschiare qualsiasi sito web che desideri e, in effetti, ci sono i plug-in di Chrome.
Se colleghi Google Chrome a Web scraper, ci sono un sacco di Web scraper che puoi utilizzare che
ti consentono di raschiare siti Web senza nemmeno scrivere una singola riga di codice.
È una buona cosa praticare la programmazione etica, e ciò significa controllare altri siti Web, termini e condizioni prima di grattarli, controllare
il testo dei punti dei loro robot per vedere cosa puoi e non puoi raschiare.
Perché di solito i dati che elimini da un sito Web non dovrebbero essere utilizzati per scopi commerciali perché
stai usando il duro lavoro di qualcun altro per, beh, forse fare soldi.
Ed è per questo che quando siamo andati su Hacker News e abbiamo chiesto un ritardo di 30 secondi, giusto, se stai
richiedendo dati da un sito Web in modo aggressivo con il tuo programma, si tratta essenzialmente di spam
perché questo potrebbe interrompere Hacker News.
Ora, prima di entrare nel Web scraping, voglio notare un'altra cosa, e questa è l'idea di
un'API.
Se ricordi quando abbiamo avuto accesso a Udemy, questo testo robusto, ci hanno detto che ci sono alcune aree consentite che
possiamo raschiare o punti finali che possiamo usare.
Vedete, alcuni siti Web consentono effettivamente di accedere ai dati.
Ad esempio, Udemy ci fornisce un'API per istruttori, ovvero se sei un istruttore su Udemy puoi
effettivamente utilizzare la loro API.
Puoi vederlo proprio qui in modo da poter ottenere dati diversi.
Forse puoi ottenere un elenco di recensioni del corso, forse un elenco di domande sul corso.
Ma se vado qui e inserisco questo nel mio RL, otterrò un token mancante non valido, perché in questo momento non sono un
istruttore, o almeno non ho verificato di essere un istruttore.
Su Udemy, dirà, ehi, questi dati sono solo per istruttori validi, quindi devo passargli un token per dimostrare
che sono un istruttore per te, Denny.
E molti siti web ti danno quello che chiamiamo API o accesso all'interfaccia di programmazione delle applicazioni.
In un modulo come questo chiamato Jason ti darà i dati di cui hai bisogno e alcuni siti web ti consentono di
farlo solo se sei un utente valido.
Ad esempio, una delle app più popolari è questa API GitHub, da cui è possibile accedere a diverse informazioni da
GitHub.
Ma per poterlo usare, dobbiamo, beh, creare un account utente e convalidare in modo che siamo chi diciamo
di essere.
Ma poi ci sono anche siti web come l'API di Star Wars che ci dà accesso gratuito.
Cioè, chiunque può usarlo.
Non abbiamo bisogno di verificare che siamo utenti.
Non è necessario fornire un token quando si effettua una richiesta.
Invece, possiamo semplicemente richiedere i dati.
Quindi, ad esempio, se eseguo l'API Sowerby e digito persone e premo invio.
Guarda, ottengo tutti questi dati gratuitamente in modo che così bene, posso creare un'app attorno a Starwars, che è
ciò che Skype rappresenta.
Sta per l'API di Star Wars.
E possiamo prendere tutte queste informazioni che vogliamo.
Abbiamo anche cose come Jason Placeholder, che mi piace molto usare quando creo progetti semplici in
cui possiamo ottenere informazioni diverse come foto, puoi vedere qui che questa è un'API che ci fornisce
informazioni.
Con diverse foto che possiamo usare.
Forse abbiamo diversi post che possiamo usare.
E ancora, questi sono ciò che chiamiamo in formato JSON, che non è HTML, ma solo una versione ripulita dei dati
in modo che le persone possano utilizzarli, il modo più semplice per ottenere dati da un sito Web di solito è utilizzare un'API.
A volte i siti Web ci consentono di accedervi facilmente o potrebbero avere un'API, ma è limitato solo a
determinati utenti.
Forse devi registrarti al loro servizio.
Forse devi pagare per la loro API.
Bene, in tal caso, abbiamo questo.
Ma poi c'è anche un web scraping, che forse è un sito Web che non ti dà accesso a un'API.
Forse vuoi solo avere quell'informazione.
Ad esempio, Hacker News non offre un'API per quanto ne so.
Quindi, invece, potremmo voler raschiare solo l'HTML, tutto il sito Web e vedere cosa possiamo usare.
Quindi, come possiamo raschiare un sito Web usando Python?
Scopriamolo nel prossimo video.