Python

Een beginnershandleiding voor webschrapen met Python en Beautiful soup

Een beginnershandleiding voor webschrapen met Python en Beautiful soup

Het world wide web is de allesomvattende en ultieme bron van alle gegevens die er zijn. De snelle ontwikkeling die het internet de afgelopen drie decennia heeft doorgemaakt, is ongekend. Als gevolg hiervan wordt het web elke dag met honderden terabytes aan gegevens aangekoppeld.

Al deze gegevens hebben enige waarde voor een bepaald iemand. Uw browsegeschiedenis is bijvoorbeeld van belang voor apps voor sociale media, omdat ze deze gebruiken om de advertenties die ze u tonen te personaliseren. En er is ook veel concurrentie voor deze gegevens; een paar MB's meer van sommige gegevens kunnen bedrijven een aanzienlijke voorsprong geven op hun concurrentie.

Datamining met Python

Om degenen onder u te helpen die nog niet bekend zijn met het schrapen van gegevens, hebben we deze handleiding opgesteld waarin we laten zien hoe u gegevens van internet kunt schrapen met Python en Beautiful soup Library.

We gaan ervan uit dat u al enigszins bekend bent met Python en HTML, aangezien u met beide zult werken volgens de instructies in deze handleiding.

Wees voorzichtig met op welke sites u uw nieuwe vaardigheden op het gebied van datamining probeert, aangezien veel sites dit als opdringerig beschouwen en weten dat dit gevolgen kan hebben.

De bibliotheken installeren en voorbereiden

Nu gaan we twee bibliotheken gebruiken die we gaan gebruiken: de verzoekbibliotheek van Python voor het laden van inhoud van webpagina's en de Beautiful Soup-bibliotheek voor het daadwerkelijke schrapen van het proces. Er zijn alternatieven voor BeautifulSoup, let wel, en als je bekend bent met een van de volgende, gebruik deze dan gerust: Scrappy, Mechanize, Selenium, Portia, kimono en ParseHub.

De aanvraagbibliotheek kan worden gedownload en geïnstalleerd met het pip-commando zoals onder:

# pip3 installatieverzoeken

De aanvraagbibliotheek moet op uw apparaat zijn geïnstalleerd. Download op dezelfde manier ook BeautifulSoup:

# pip3 installeer beautifulsoup4

Daarmee zijn onze bibliotheken klaar voor wat actie.

Zoals hierboven vermeld, heeft de verzoekbibliotheek niet veel anders dan het ophalen van de inhoud van webpagina's. De BeautifulSoup-bibliotheek en verzoekbibliotheken hebben een plaats in elk script dat u gaat schrijven, en ze moeten als volgt voor elk worden geïmporteerd:

$importverzoeken
$van bs4 importeer BeautifulSoup als bs

Dit voegt het gevraagde sleutelwoord toe aan de naamruimte en signaleert aan Python de betekenis van het sleutelwoord wanneer het gebruik ervan wordt gevraagd. Hetzelfde gebeurt met het trefwoord bs, maar hier hebben we het voordeel dat we een eenvoudiger trefwoord toewijzen aan BeautifulSoup.

webpagina = verzoeken.krijgen (URL)

De bovenstaande code haalt de webpagina-URL op en maakt er een directe string van, die deze opslaat in een variabele.

$webcontent = webpagina.inhoud

De bovenstaande opdracht kopieert de inhoud van de webpagina en wijst deze toe aan de variabele webinhoud.

Daarmee zijn we klaar met de aanvraagbibliotheek. Het enige dat u hoeft te doen, is de aanvraagbibliotheekopties wijzigen in BeautifulSoup-opties.

$htmlcontent = bs(webcontent, “html.parser")

Dit parseert het aanvraagobject en verandert het in leesbare HTML-objecten.

Als dat allemaal is geregeld, kunnen we doorgaan naar het eigenlijke schraapbit.

Webscraping met Python en BeautifulSoup

Laten we verder gaan en kijken hoe we HTML-objecten voor gegevens kunnen schrapen met BeautifulSoup.

Om een ​​voorbeeld te illustreren, terwijl we dingen uitleggen, werken we met dit html-fragment:

We hebben toegang tot de inhoud van dit fragment met BeautifulSoup en gebruiken het op de HTML-inhoudsvariabele zoals onder:


De bovenstaande code zoekt naar alle tags met de naam

, en toont het aan de gebruiker. Als het meer dan één tags vindt, worden ze één voor één weergegeven:

Technologie

Om de tags met de naam tegelijkertijd op te slaan:

naar een lijst, zouden we de definitieve code uitgeven zoals onder:

De uitvoer zou als volgt moeten terugkeren:

Om een ​​van de . op te roepen

tags, indexeer de lijst en neem degene die je wilt.

Laten we nu kijken hoe we kunnen kiezen

tags houden hun kenmerken in perspectief. om een ​​te scheiden
, we hebben de nodig
tags met het attribuut “Tech_head“. Voer de volgende code in:


voor div in soep.find_all('div',attrs='class'='Tech_head'):

Dit haalt de

label.

Je zou krijgen:

Technologie

Allemaal zonder tags.

Ten slotte zullen we bespreken hoe u de waarde van het kenmerk in een tag kunt kiezen. De code moet deze tag hebben:

dame

Om de waarde uit te voeren die is gekoppeld aan het src-kenmerk, gebruikt u het volgende:

htmlinhoud.find(“img“)[“src“]

En de uitvoer zou blijken te zijn als:

"images_4/a-beginners-guide-to-web-scraping-with-python-and-beautiful-soup.jpg"

Oh boy, dat is zeker een hele hoop werk!

Als u vindt dat uw vertrouwdheid met python of HTML onvoldoende is of als u gewoon overweldigd bent door het webschrapen, hoeft u zich geen zorgen te maken.

Als u een bedrijf bent dat regelmatig een bepaald type gegevens moet verzamelen, maar het web-scraping niet zelf kan doen, zijn er manieren om dit probleem te omzeilen. Maar weet dat het je wat geld gaat kosten. U kunt iemand vinden die het scrapen voor u doet, of u kunt de premium dataservice van websites zoals Google en Twitter krijgen om de gegevens met u te delen. Deze delen delen van hun gegevens door gebruik te maken van API's, maar deze API-aanroepen zijn beperkt per dag. Afgezien daarvan kunnen websites zoals deze zeer beschermend zijn voor hun gegevens. Meestal delen veel van dergelijke sites helemaal geen van hun gegevens.

Laatste gedachten

Voordat we afronden, wil ik je nog even hardop vertellen als het nog niet vanzelfsprekend is geweest; de opdrachten find(), find_all() zijn je beste vrienden als je aan het scrappen bent met BeautifulSoup. Hoewel er nog veel meer te doen is om het scrapen van gegevens met Python onder de knie te krijgen, zou deze handleiding voldoende moeten zijn voor degenen onder u die net beginnen.

Sid Meier's Civilization VI downloaden en spelen op Linux and
Inleiding tot het spel Civilization 6 is een moderne versie van het klassieke concept dat werd geïntroduceerd in de serie Age of Empires-games. Het id...
Doom installeren en spelen op Linux
Inleiding tot Doom De Doom-serie is ontstaan ​​in de jaren 90 na de release van de originele Doom. Het was meteen een hit en vanaf die tijd heeft de g...
Vulkan voor Linux-gebruikers
Met elke nieuwe generatie grafische kaarten zien we game-ontwikkelaars de grenzen van grafische betrouwbaarheid verleggen en een stap dichter bij foto...

Laatste artikelen over besturingssystemen. Veel interessante handleidingen en handige tips. Voel je eigen in de wereld van moderne technologie