Semalt Expert: Python en BeautifulSoup. Scrape sites met gemak

Wanneer u gegevensanalyse- of machine learning-projecten uitvoert, moet u mogelijk websites schrapen om de benodigde gegevens te verkrijgen en uw project te voltooien. De programmeertaal Python heeft een krachtige verzameling tools en modules die voor dit doel kunnen worden gebruikt. U kunt bijvoorbeeld de BeautifulSoup-module gebruiken voor HTML-parsering.

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

BeautifulSoup-functies

- Het biedt verschillende methoden voor eenvoudige navigatie, zoeken en wijzigen van ontleedbomen, zodat u eenvoudig een document kunt ontleden en alles kunt extraheren 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 gespecificeerd of dat Beautiful Soup deze automatisch kan detecteren.

- BeautifulSoup wordt beschouwd als superieur aan andere populaire Python-parsers zoals html5lib en lxml. Hiermee kunt u verschillende parseringsstrategieën proberen. Een nadeel van deze module is echter dat deze meer flexibiliteit biedt ten koste van snelheid.

Wat heb je nodig om een website te schrapen met BeautifulSoup?

Om met BeautifulSoup te kunnen werken, moet je de Python-programmeeromgeving (lokaal of servergebaseerd) op je computer hebben ingesteld. Python is meestal vooraf geïnstalleerd in OS X, maar als u Windows gebruikt, moet u de taal downloaden en installeren vanaf de officiële website.

U zou de modules BeautifulSoup en Request moeten hebben geïnstalleerd.

Ten slotte is vertrouwd en comfortabel werken met HTML-tagging en -structuur zeker nuttig, omdat u met webgebaseerde gegevens gaat werken.

Aanvragen en BeautifulSoup-bibliotheken importeren

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

De Request-bibliotheek stelt u in staat om een voor mensen leesbare vorm HTTP binnen uw Python-programma's te gebruiken, terwijl BeautifulSoup het schrapen sneller doet. U kunt de importinstructie gebruiken om beide bibliotheken op te halen.

Een webpagina verzamelen en parseren

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

De gewenste tekst uit de geparseerde webpagina halen

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 (als u Windows gebruikt) of CTRL + klik (als u macOS gebruikt) op een van de items die deel uitmaken van de gegevens die van belang zijn. Als u bijvoorbeeld gegevens over de nationaliteit van studenten wilt opvragen, klikt u op een van de namen van een student. Er verschijnt een contextmenu en daarin ziet u een menu-item dat lijkt op Inspect Element (voor Firefox) of Inspect (voor Chrome). Klik op het relevante menu-item Inspect en de tools voor webontwikkelaars verschijnen in uw browser.

BeautifulSoup is een eenvoudige maar krachtige HTML-parseringstool die u veel flexibiliteit biedt bij het scrapen van websites . Vergeet bij het gebruik niet de algemene regels voor schrapen in acht te nemen, zoals het controleren van de algemene voorwaarden van de website; het regelmatig opnieuw bezoeken van de site en het bijwerken van uw code volgens de wijzigingen die op de site zijn aangebracht. Met deze kennis over het scrapen van websites met Python en BeautifulSoup, kunt u nu gemakkelijk de webgegevens verkrijgen die u nodig heeft voor uw project.

send email