Stop guessing what′s working and start seeing it for yourself.
Aanmelden of registreren
Q&A
Question Center →

Semalt Expert: Python en BeautifulSoup. Schraap Sites met gemak

Bij het uitvoeren van data-analyse of machine learning-projecten, moet u mogelijk websites schrapen om de benodigde gegevens en voltooi uw project. Python-programmeertaal heeft een krachtige verzameling tools en modules die voor dit doel kunnen worden gebruikt. U kunt bijvoorbeeld de BeautifulSoup-module gebruiken voor HTML-parsen.

Hier gaan we kijken naar BeautifulSoup en ontdekken waarom het nu zo veel wordt gebruikt in webscraping.

BeautifulSoup-functies

  • Het biedt verschillende methoden voor eenvoudige navigatie, zoeken en wijzigen van ontleedbomen, zodat u gemakkelijk een document kunt ontleden en alles kunt extraheren wat u nodig hebt zonder teveel code te schrijven.
  • Het converteert automatisch uitgaande documenten naar UTF-8 en inkomende documenten naar Unicode. Dit betekent dat u zich geen zorgen hoeft te maken over coderingen, op voorwaarde dat het document een codering heeft opgegeven of Beautiful Soup het automatisch kan detecteren.
  • BeautifulSoup wordt beschouwd als superieur aan andere populaire Python-parsers zoals html5lib en lxml. Hiermee kunt u verschillende ontleedstrategieën uitproberen. Een nadeel van deze module is echter dat deze meer flexibiliteit biedt ten koste van de snelheid.

Wat heb je nodig om website te schrapen met BeautifulSoup?

Om met BeautifulSoup te gaan werken, moet de programmeeromgeving van Python (lokaal of op server) op uw machine zijn ingesteld. Python is meestal vooraf geïnstalleerd in OS X, maar als u Windows gebruikt, moet u de taal van de officiële website downloaden en installeren.

De modules BeautifulSoup en Requests moeten zijn geïnstalleerd. 

Ten slotte is bekend en comfortabel werken met HTML-tagging en structuur zeker nuttig, omdat u met web-sourcedata zult werken.

Aanvragen en BeautifulSoup-bibliotheken importeren

De programmeeromgeving van Python is goed ingesteld, je kunt nu een nieuw bestand maken (bijvoorbeeld met nano) met elke gewenste naam.

Met de bibliotheek Verzoeken kun je een door mensen leesbare HTTP-vorm gebruiken in je Python-programma's terwijl BeautifulSoup het schrapen sneller laat verlopen. U kunt de importinstructie gebruiken om beide bibliotheken te openen.

Hoe een webpagina te verzamelen en te analyseren

Gebruik de methode requests.get () om de URL te verzamelen van de webpagina waarvan u gegevens wilt extraheren. Maak vervolgens een BeautifulSoup-object of ontleed de structuur. Dit object neemt het document uit Aanvragen als zijn argumenten en parseert het vervolgens. Met de pagina verzameld, geparseerd en ingesteld als een BeautifulSoup-object, kunt u doorgaan met het verzamelen van de gegevens die u nodig hebt.

De gewenste tekst extraheren uit de geparseerde webpagina

Wanneer u webgegevens wilt verzamelen, moet u weten hoe die gegevens worden beschreven door het Document Object Model (DOM) van de webpagina. Klik in uw webbrowser met de rechtermuisknop (bij gebruik van Windows) of CTRL + klik (bij gebruik van macOS) op een van de items die deel uitmaken van de van belang zijnde gegevens. Als u bijvoorbeeld gegevens over de nationaliteiten van studenten wilt achterhalen, klikt u op een van de namen van een student. Er verschijnt een contextmenu en daarbinnen ziet u een menu-item dat lijkt op Inspect Element (voor Firefox) of Inspect (voor Chrome). Klik op het relevante menu-item Inspecteren en de hulpprogramma's voor webontwikkeling verschijnen in uw browser.

BeautifulSoup is een eenvoudige maar krachtige HTML-parsingtool die u veel flexibiliteit biedt wanneer websites worden geschraapt. Houd er bij het gebruik rekening mee dat u algemene regels voor het afschrapen in acht neemt, zoals het controleren van de algemene voorwaarden van de website; de site regelmatig opnieuw bezoeken en uw code bijwerken volgens de wijzigingen die op de site zijn aangebracht. Met deze kennis over het schrapen van websites met Python en BeautifulSoup, kunt u nu eenvoudig de webgegevens ophalen die u nodig hebt voor uw project.

View more on these topics

Post a comment

Post Your Comment

Skype

semaltcompany

WhatsApp

16468937756

Telegram

Semaltsupport