Laat me je dit vragen, als je een website-eigenaar was.
Zou je willen dat mensen je website schrapen?
Zou je willen dat mensen toegang hebben tot je gegevens, misschien je Airbnb en je hebt heel hard gewerkt om deze
producten, verschillende informatie hier, te vermelden, is het eerlijk dat iedereen deze informatie kan komen halen en misschien een
kopie van je website kan maken?
Maar niet echt goed?
Ik bedoel, het hangt er meestal van af dat je niet echt wilt dat mensen je website schrapen.
Hoewel HTML en de gegevens van een website voor ons allemaal beschikbaar zijn, is het gewoon hoe ons internet werkt, zodat
mensen verschillende webpagina's kunnen zien, de meeste websites willen niet echt dat u hun gegevens schrapt.
Nu is er een manier waarop websites u vertellen wat u wel en niet kunt schrapen.
Het wordt robots-punttekst genoemd.
We zeggen gewoon aan het einde van een URL-slash.
Robots dot t t klik, voer in.
Kijk eens aan, Airbnb heeft een robot.
Niet-belaste tekstrobots zeggen gewoon, hé, als je een robot bent, of je een webschraper of een spin bent.
Dit is waarom je het wel en niet mag doen, betekent het dat ze ons zullen tegenhouden als we de regels
overtreden?
Nee, ze kunnen ons niet echt tegenhouden.
Maar dit is een grijs gebied waar u hier ethisch wilt zijn en alleen de gegevens wilt schrapen die een website u toestaat.
Dus als we naar Roboshark-tekst kijken, zie je hier dat Airbnb een belastingbestand heeft gemaakt dat ons vertelt wat je
wel en niet kunt schrapen.
We kijken bijvoorbeeld naar de user-agent hier, die zegt dat de Google-bot Airbnb vertelt, hey, Google-bot, je
mag deze informatie schrapen, maar we staan niet toe dat je de account-alumni-kalender schrapt en je ziet dat er zijn veel
dingen die niet zijn toegestaan.
Hoe zit het met de Bing-zoekbot?
Dan mag jij dit doen, maar hij niet.
Schraap een van deze gegevens.
We hebben een Yandex-bord.
Wat hebben we nog meer, we hebben Biddu Spider.
En dan hebben we ook User Agent Star, dat betekent dat iedereen, iedereen, dit mag
schrapen, maar geen van deze informatie.
Oké, laten we naar een andere gaan, laten we naar jou gaan, Demi Dotcom.
Hier zien we dat iedereen van wie we niet willen dat je door deze informatie scharrelt of kruipt, maar we
geven je wel toegang tot deze informatie.
API2. 0, natuurlijk, landingscomponenten, oké, dus dat is jammer.
Het lijkt erop dat Udemy ons niet echt toestaat iets anders te doen dan deze API 2. 0 ding, dat zal terugkomen.
Hoe zit het met Hacker News, we gaan een project bouwen rond Hacker News, dus laten we eens kijken of Hacker
News ons toestaat om het te schrapen.
Oké, dus deze lijst is een beetje kleiner.
Dat zien we bij alle gebruikers.
We mogen deze eindpunten niet gebruiken.
Dus het zegt dat zolang je deze niet gebruikt als deze je anders zijn, we klaar zijn om te gaan.
Dat is als we alleen de startpagina wilden schrapen.
Dat is hier, dat is prima als we proberen om, laten we zeggen, naar opmerkingen te gaan.
Dat is ook goed, want deze stond niet in de robottekst, nogmaals, als je het je herinnert, als we
naar robots punttekst gaan.
Dat is prima.
Het enige dat ze vragen is dat we een crawlvertraging van 30 hebben, dat wil zeggen dat als we
hun website gaan crawlen, we een pauze moeten nemen zodat we niet constant programma's gebruiken om de website te bezoeken, omdat, wel,
dit zal hun servers overbelasten en misschien hun website vertragen.
Dus wat leren we gewoon, we hebben geleerd dat er ethische en onethische manieren zijn om websites te schrapen.
Ja, je kunt elke website schrapen die je wilt en in feite zijn er chromen plug-ins.
Als u Google Chrome inplugt in webschraper, zijn er een heleboel webschrapers die u kunt gebruiken waarmee
u websites kunt schrapen zonder zelfs maar een enkele regel code te schrijven.
Het is een goede zaak om ethisch programmeren te oefenen, en dat betekent het controleren van andere websites, voorwaarden en bepalingen voordat je het schrapt,
het controleren van hun robots punttekst om te zien wat je wel en niet kunt schrapen.
Omdat de gegevens die u van een website haalt normaal gesproken niet voor commerciële doeleinden mogen worden gebruikt, omdat u
het harde werk van iemand anders gebruikt om, nou ja, misschien geld te verdienen.
En dit is de reden waarom toen we naar Hacker News gingen en om een vertraging van 30 seconden vroegen, juist, als
je gegevens van een website opvraagt om agressief met je programma om te gaan, dat in wezen spam
is, omdat dit Hacker News kan breken.
Voordat we beginnen met webscraping, wil ik nog iets anders opmerken, en dat is het idee van een
API.
Als je je herinnert toen we Udemy, deze robuuste tekst, gebruikten, vertelden ze ons dat er enkele toegestane gebieden zijn die we
kunnen schrapen of eindpunten die we kunnen gebruiken.
U ziet dat sommige websites u daadwerkelijk toegang geven tot gegevens.
Udemy geeft ons bijvoorbeeld een instructeur-API, dat wil zeggen, als je een instructeur bent op Udemy, kun
je hun API daadwerkelijk gebruiken.
Je kunt het hier zien, zodat je verschillende gegevens kunt krijgen.
Misschien kun je een cursusoverzichtslijst krijgen, misschien een cursusvragenlijst.
Maar als ik hierheen ga en dit in mijn RL invoer, krijg ik een ongeldig ontbrekend token, dat komt omdat ik op dit moment geen instructeur
ben, of ik heb tenminste niet geverifieerd dat ik een instructeur ben.
Op Udemy zal het zeggen, hey, deze gegevens zijn alleen voor geldige instructeurs, dus ik moet een token doorgeven om te
bewijzen dat ik een instructeur van jou ben, Denny.
En veel websites geven je toegang tot wat we API of Application Programming Interface noemen.
In een formulier als dit, genaamd Jason to, krijg je de gegevens die je nodig hebt en sommige websites staan je dit alleen
toe als je een geldige gebruiker bent.
Een van de meest populaire apps is bijvoorbeeld deze GitHub API, waar je toegang hebt tot verschillende informatie van
GitHub.
Maar om ervoor te zorgen dat we het kunnen gebruiken, moeten we een gebruikersaccount maken en valideren zodat we zijn wie we zeggen dat
we zijn.
Maar dan zijn er ook websites zoals de Star Wars API die ons gratis toegang geeft.
Dat wil zeggen, iedereen kan het gebruiken.
We hoeven niet te verifiëren dat we gebruiker zijn.
Wij hoeven bij een aanvraag geen token af te geven.
In plaats daarvan kunnen we gewoon gegevens opvragen.
Dus, bijvoorbeeld, als ik de Sowerby API doe en mensen typ en ik druk op enter.
Kijk eens aan, ik krijg al deze data gratis zodat ik zo een app kan maken rondom de Starwars, dat is
waar Skype voor staat.
Het staat voor de Star Wars-API.
En we kunnen al deze informatie pakken die we willen.
We hebben ook dingen zoals de Jason Placeholder, die ik erg graag gebruik bij het bouwen van eenvoudige
projecten waar we verschillende informatie kunnen krijgen, zoals foto's. Je kunt hier zien dat dit een API is die ons
informatie geeft.
Met verschillende foto's die we kunnen gebruiken.
Misschien hebben we verschillende berichten die we kunnen gebruiken.
En nogmaals, dit zijn wat we noemen in JSON-formaat, wat geen HTML is, maar gewoon een opgeschoonde versie van gegevens
zodat mensen het kunnen gebruiken. De gemakkelijkste manier om gegevens van een website te krijgen, is meestal met behulp van een API.
Soms laten websites ons toe om er eenvoudig toegang toe te krijgen, of ze hebben misschien een API, maar deze is alleen beperkt
tot bepaalde gebruikers.
Misschien moet u zich registreren bij hun service.
Misschien moet je betalen voor hun API.
In dat geval hebben we dit.
Maar dan is er ook een webscraping, wat misschien een website is die je geen toegang geeft tot een API.
Misschien wil je die informatie gewoon hebben.
Hacker News biedt bijvoorbeeld geen API aan voor zover ik weet.
Dus in plaats daarvan willen we misschien gewoon de HTML schrapen, de hele website en kijken wat we kunnen gebruiken.
Dus hoe kunnen we een website schrapen met Python?
Laten we het ontdekken in de volgende video.