Inhoudsopgave
De Scherm schrapen of screen scraping, stelt ons in staat om informatie uit een webpagina te halen door genoemde pagina te downloaden en deze vervolgens te verwerken met een programma; Dit is erg handig, vooral wanneer we bijgewerkte informatie nodig hebben van een website die er geen heeft API beschikbaar of sommige Webservice.het uitvoeren van een Scherm schrapen, we moeten gewoon de inhoud downloaden en kunnen manipuleren zodat we kunnen extraheren wat ons interesseert, hiervoor kunnen we verschillende technieken gebruiken, zoals het gebruik van reguliere expressies of misschien onszelf helpen met andere bibliotheken zoals Netjes.
Wat is netjes?
Om een te kunnen lezen HTML We moeten de structuur ervan vertrouwen, want aangezien we niet precies weten welke inhoud het heeft, weten we tenminste dat als we naar structuren zoeken HTML iets wat we kunnen krijgen, echter niet altijd de HTML het is goed gevormd, ofwel door een fout of weglating, ofwel omdat de programmeur weet dat sommige browsers HTML interpreteren, zelfs als er enkele gebreken zijn.
Op dit punt komt in het spel Netjes, wat niets meer is dan een tool waarmee we misvormde HTML kunnen repareren, het is zeer configureerbaar en stelt ons in staat om de manier aan te passen waarop het de correcties moet interpreteren die het kan maken, op deze manier zullen we met zekerheid weten welk type document zal resulteren in het einde.
Laten we eerst een afbeelding van een code bekijken HTML Met veel fouten kan deze code door sommige browsers worden geïnterpreteerd, maar het is geen correcte code in zijn formatie:
Dan gebruiken we Netjes en laten we eens kijken naar de code die al is gecorrigeerd, daar zullen we ons realiseren hoe belangrijk deze bibliotheek is en alle hulp die het ons kan geven:
Opruimen
Er zijn verschillende manieren om Tidy via de officiële pagina http://tidy.sf.net te krijgen. we kunnen de bibliotheek verkrijgen, maar er is geen manier in die bron om het te integreren met Python dus we moeten onze toevlucht nemen tot een alternatieve bron, hiervoor hebben we twee opties: uTidy beschikbaar op http: / /utidylib.berlios.de en mxTidy beschikbaar op http: / /egenix.com/files/python/mxTidy.html, uTidy lijkt de meest up-to-date van de twee te zijn, maar mxTidy is een beetje eenvoudiger te installeren, het is aan iedereen om te zien welke gebruiken.
Laten we een voorbeeld bekijken van hoe te gebruiken Netjes Zodra we het hebben geïnstalleerd, openen we in de volgende code een HTML met fouten en lezen deze met Tidy, waarna we de informatie op het scherm tonen.
van subproces import Popen, PIPE tekst = open ('messy.html') read () netjes = Popen ('tidy', stdin = PIJP, stdout = PIJP, stderr = PIJP) netjes.stdin.write (tekst) opgeruimd. stdin.close () print netjes.stdout.read ()
Zoals we kunnen zien, is het vrij eenvoudig te gebruiken NetjesAls we er eenmaal voldoende vertrouwen in hebben door het gedrag van de bibliotheek goed te kennen, kunnen we heel interessante dingen bereiken.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een positief punt te geven