Sådan skrabes websteder med Python og BeautifulSoup

Der er flere oplysninger på Internettet, end noget menneske kan absorbere i livet. Det, du har brug for, er ikke adgang til disse oplysninger, men en skalerbar måde at indsamle, organisere og analysere dem på.
Du har brug for webskrabning.
Webskrabning udtrækker automatisk data og præsenterer dem i et format, som du let kan forstå. I denne vejledning fokuserer vi på dets applikationer på det finansielle marked, men webskrabning kan bruges i en lang række situationer.
Hvis du er en ivrig investor, kan det være en smerte, at få lukkekurser hver dag, især når de oplysninger, du har brug for, findes på flere websider. Vi gør dataudvindingen nemmere ved at opbygge en webskraber, der automatisk henter aktieindekser fra Internettet.

Kom godt i gang
Vi skal bruge Python som vores skrabningssprog sammen med et simpelt og kraftfuldt bibliotek, BeautifulSoup.
- For Mac-brugere er Python forudinstalleret i OS X. Åbn Terminal og skriv
python --version
. Du skal se din python-version er 2.7.x. - For Windows-brugere skal du installere Python via det officielle websted.
Dernæst skal vi få BeautifulSoup-biblioteket ved hjælp af pip
et pakkehåndteringsværktøj til Python.
Skriv i terminalen:
easy_install pip pip install BeautifulSoup4
Bemærk : Hvis du ikke udfører ovenstående kommandolinje, skal du prøve at tilføje sudo
foran hver linje.
Det grundlæggende
Før vi begynder at springe ind i koden, lad os forstå det grundlæggende i HTML og nogle regler for skrabning.
HTML-tags
Hvis du allerede forstår HTML-tags, er du velkommen til at springe denne del over.
First Scraping
Hello World
Dette er den grundlæggende syntaks på en HTML-webside. Hver tjener en blok inde på websiden:
1 .: HTML-dokumenter skal starte med en typedeklaration.
2. HTML-dokumentet findes mellem og
.
3. Meta- og script-erklæringen for HTML-dokumentet er mellem og
.
4. Den synlige del af HTML-dokumentet er mellem og
tags.
5. Titeloverskrifter defineres med
igennem
tags.
6. Stk. Defineres med
Other useful tags include
for hyperlinks,
for tables,
for table rows, and
til tabelkolonner. HTML-tags kommer også nogle gange med For mere information om HTML-tags, id og klasse henvises til W3Schools Tutorials. Skrabningsregler
Inspektion af sidenLad os tage en side fra Bloomberg Quote-webstedet som et eksempel. Som en person, der følger aktiemarkedet, vil vi gerne få indeksnavnet (S&P 500) og dets pris fra denne side. Højreklik først og åbn din browsers inspektør for at inspicere websiden. ![]() Prøv at holde markøren over prisen, og du skal kunne se en blå boks omkring den. Hvis du klikker på den, vælges den relaterede HTML i browserkonsollen. ![]() Fra resultatet kan vi se, at prisen ligger inden for et par niveauer af HTML-tags, hvilket er Tilsvarende, hvis du holder markøren og klikker på navnet “S&P 500 Index”, er det indeni .![]() Nu kender vi den unikke placering af vores data ved hjælp af Hop ind i kodenNu hvor vi ved, hvor vores data er, kan vi begynde at kode vores webskraber. Åbn din teksteditor nu! Først skal vi importere alle de biblioteker, vi skal bruge.
Derefter erklæres en variabel for sidens url.
Brug derefter Python urllib2 for at få HTML-siden for url erklæret.
Til sidst skal du parse siden i BeautifulSoup-format, så vi kan bruge BeautifulSoup til at arbejde på den.
Nu har vi en variabel Husk de unikke lag af vores data? BeautifulSoup kan hjælpe os med at komme ind i disse lag og udtrække indholdet med
Når vi har tagget, kan vi hente dataene ved at hente dem
På samme måde kan vi også få prisen.
Når du kører programmet, skal du kunne se, at det udskriver den aktuelle pris på S&P 500-indekset. ![]() Eksporter til Excel CSVNu hvor vi har dataene, er det tid til at gemme dem. Excel Comma Separated Format er et godt valg. Det kan åbnes i Excel, så du kan se dataene og behandle dem let. Men først skal vi importere Python csv-modulet og datetime-modulet for at få registreringsdatoen. Indsæt disse linjer i din kode i afsnittet import.
I bunden af din kode skal du tilføje koden til at skrive data til en csv-fil.
Hvis du nu kører dit program, skal du kunne eksportere en ![]() Så hvis du kører dette program hver dag, vil du være i stand til nemt at få S&P 500-indeksprisen uden at rodfæste gennem hjemmesiden! Gå videre (avancerede anvendelser)Flere indekser Så skrabning af et indeks er ikke nok for dig, ikke? Vi kan prøve at udtrække flere indeks på samme tid. Først skal du ændre den
Derefter ændrer vi dataekstraktionskoden til en
Du skal også ændre lagringsafsnittet for at gemme data række for række.
Kør programmet igen, og du skal være i stand til at udtrække to indekser på samme tid! Avancerede skrabeteknikkerBeautifulSoup er enkel og fantastisk til småskrabning på nettet. Men hvis du er interesseret i at skrabe data i større skala, bør du overveje at bruge disse andre alternativer:
Vedtag DRY-metoden![]() DRY står for “Don't Repeat Yourself”, prøv at automatisere dine daglige opgaver som denne person. Nogle andre sjove projekter, du kan overveje, kan være at holde styr på dine Facebook-venners aktive tid (med deres samtykke selvfølgelig) eller tage en liste over emner i et forum og afprøve naturlig sprogbehandling (hvilket er et varmt emne for kunstig intelligens lige nu)! Hvis du har spørgsmål, er du velkommen til at efterlade en kommentar nedenfor. Referencer //www.gregreda.com/2013/03/03/web-scraping-101-with-python/ //www.analyticsvidhya.com/blog/2015/10/beginner-guide-web-scraping-beautiful-soup-python/ Denne artikel blev oprindeligt offentliggjort på Altitude Labs 'blog og blev skrevet af vores softwareingeniør, Leonard Mok. Altitude Labs er et softwarebureau, der specialiserer sig i personaliserede, mobil-første React-apps. |