Internet är den heltäckande och ultimata källan till all information som finns. Den snabba utveckling som internet har sett under de senaste tre decennierna har varit utan motstycke. Som ett resultat monteras webben med hundratals terabyte data varje dag som går.
All denna information har något värde för en viss person. Till exempel har din webbhistorik betydelse för sociala medieappar, eftersom de använder den för att anpassa de annonser de visar dig. Och det finns också mycket konkurrens för denna information; några MB-filer mer av vissa data kan ge företag en betydande fördel i förhållande till konkurrensen.
Datautvinning med Python
För att hjälpa de av er som är nya för dataskrapning har vi förberett den här guiden där vi visar hur man skrapar data från webben med hjälp av Python och Beautiful soup Library.
Vi antar att du redan har mellanliggande kunskap med Python och HTML, eftersom du kommer att arbeta med båda dessa enligt instruktionerna i den här guiden.
Var försiktig med vilka webbplatser du testar dina nyvunna data mining-färdigheter på, eftersom många webbplatser anser att detta är påträngande och vet att det kan få återverkningar.
Installera och förbereda biblioteken
Nu ska vi använda två bibliotek som vi ska använda: pythons begäranbibliotek för att ladda innehåll från webbsidor och det vackra soppbiblioteket för den faktiska skrapningen av processen. Det finns alternativ till BeautifulSoup, kom ihåg, och om du känner till något av följande, använd gärna dessa istället: Scrappy, Mechanize, Selen, Portia, kimono och ParseHub.
Förfrågningsbiblioteket kan laddas ner och installeras med pip-kommandot enligt:
# pip3 installationsförfrågningar
Förfrågningsbiblioteket ska installeras på din enhet. Ladda ner på samma sätt också BeautifulSoup:
# pip3 installera beautifulsoup4
Med det är våra bibliotek redo för några åtgärder.
Som nämnts ovan har förfrågningsbiblioteket inte mycket annat än att hämta innehållet från webbsidor. BeautifulSoup-biblioteket och förfrågningsbiblioteken har en plats i varje skript som du ska skriva, och de måste importeras före varje på följande sätt:
$ importförfrågningar$ från bs4 importera BeautifulSoup som bs
Detta lägger till det önskade nyckelordet i namnområdet och signalerar till Python nyckelordets betydelse när användningen uppmanas. Samma sak händer med sökordet bs, men här har vi fördelen att tilldela ett enklare nyckelord för BeautifulSoup.
webbsida = förfrågningar.få (URL)Koden ovan hämtar webbsidans URL och skapar en direkt sträng ur den och lagrar den i en variabel.
$ webcontent = webbsida.innehållKommandot ovan kopierar webbsidans innehåll och tilldelar dem till det variabla webbinnehållet.
Med det är vi klara med begäran biblioteket. Allt som finns kvar att göra är att ändra förfrågningsbibliotekets alternativ till BeautifulSoup-alternativ.
$ htmlcontent = bs (webbinnehåll, “html.parser “)
Detta analyserar förfrågningsobjektet och gör det till läsbara HTML-objekt.
Med allt tagit hand om kan vi gå vidare till själva skrapbiten.
Webbskrapning med Python och BeautifulSoup
Låt oss gå vidare och se hur vi kan skrapa data HTML-objekt med BeautifulSoup.
För att illustrera ett exempel, medan vi förklarar saker, kommer vi att arbeta med detta html-kodavsnitt:
Vi kan komma åt innehållet i detta utdrag med BeautifulSoup och använda det på HTML-innehållsvariabeln enligt:
Koden ovan söker efter eventuella taggar
För att samtidigt spara taggarna
till en lista, skulle vi utfärda den slutliga koden enligt:
Utgången ska återvända så här:
Att kalla till en av de
Låt oss nu se hur man väljer ut
taggar som håller deras egenskaper i perspektiv. För att separera a , vi skulle behöva
för div i soppa.find_all ('div', attrs = 'class' = 'Tech_head'):
Detta hämtar
märka.Du skulle få:
Teknologi
Allt utan taggar.
Slutligen kommer vi att beskriva hur man väljer ut attributets värde i en tagg. Koden ska ha den här taggen:
För att utföra värdet som är associerat med attributet src, använder du följande:
htmlinnehåll.hitta ("img") ["src"]Och produktionen skulle visa sig som:
"images_4 / a-nybörjarguide-till-webb-skrapning-med-python-och-vacker-soppa.jpg "
Åh pojke, det är verkligen mycket arbete!
Om du känner att din bekantskap med python eller HTML är otillräcklig eller om du helt enkelt är överväldigad av webbskrapning, oroa dig inte.
Om du är ett företag som behöver förvärva en viss typ av data regelbundet men inte själv kan skrapa webben, finns det sätt att kringgå detta problem. Men vet att det kommer att kosta lite pengar. Du kan hitta någon som gör skrapningen åt dig, eller så kan du få premiumdatatjänsten från webbplatser som Google och Twitter för att dela data med dig. Dessa delar delar av deras data genom att använda API: er, men dessa API-samtal är begränsade per dag. Bortsett från det kan webbplatser som dessa vara mycket skyddande för deras data. Vanligtvis delar många sådana webbplatser inte någon av deras data alls.
Slutgiltiga tankar
Innan vi avslutar, låt mig berätta högt om det inte redan har varit självklart; kommandona find (), find_all () är dina bästa vänner när du är ute och skrapar med BeautifulSoup. Även om det finns mycket mer att täcka för att skrapa dataskrapning med Python, bör den här guiden vara tillräckligt för de av er som just har börjat.