Svetovni splet je vseobsegajoč in končni vir vseh podatkov, ki obstajajo. Hiter razvoj interneta v zadnjih treh desetletjih je bil brez primere. Kot rezultat, se splet vsak dan namesti na stotine terabajtov podatkov.
Vsi ti podatki imajo določeno vrednost za nekoga. Zgodovina brskanja je na primer pomembna za aplikacije v družabnih omrežjih, saj jo uporabljajo za prilagajanje oglasov, ki jih prikazujejo. In tudi za te podatke obstaja velika konkurenca; nekaj MB več nekaterih podatkov lahko podjetjem omogoči znatno prednost pred konkurenco.
Podatkovno rudarjenje s Pythonom
Da bi pomagali tistim, ki ste novi pri strganju podatkov, smo pripravili ta priročnik, v katerem bomo pokazali, kako s pomočjo knjižnice Python in Beautiful Juha strgati podatke iz spleta.
Predvidevamo, da že vmesno poznate Python in HTML, saj boste z obema sodelovali po navodilih v tem priročniku.
Bodite previdni pri spletnih mestih, na katerih preizkušate novo pridobljene veščine rudarjenja podatkov, saj se številnim spletnim mestom to zdi vsiljivo in ve, da bi lahko prišlo do posledic.
Namestitev in priprava knjižnic
Zdaj bomo uporabili dve knjižnici, ki jih bomo uporabili: pythonovo knjižnico zahtev za nalaganje vsebine s spletnih strani in knjižnico Beautiful Soup za dejanski strgalni bit procesa. Za BeautifulSoup obstajajo druge možnosti, in če ste seznanjeni s katerim od naslednjih, jih raje uporabite: Scrappy, Mechanize, Selenium, Portia, kimono in ParseHub.
Knjižnico zahtev lahko prenesete in namestite z ukazom pip, kot je opisano spodaj:
# pip3 zahteve za namestitev
Knjižnica zahtev mora biti nameščena v vaši napravi. Podobno prenesite tudi BeautifulSoup:
# pip3 namestite beautifulsoup4
S tem so naše knjižnice pripravljene na nekaj ukrepov.
Kot smo že omenili, knjižnica zahtev nima posebne koristi, razen pridobivanja vsebine s spletnih strani. Knjižnica BeautifulSoup in knjižnice zahtev imajo mesto v vsakem skriptu, ki ga boste napisali, pred vsakim pa jih je treba uvoziti, kot sledi:
$ zahtev za uvoz$ iz bs4 uvozi BeautifulSoup kot bs
To v imenski prostor doda zahtevano ključno besedo in Pythonu sporoči pomen ključne besede vsakič, ko se zahteva njena uporaba. Enako se zgodi s ključno besedo bs, čeprav imamo tukaj prednost, da damo preprostejšo ključno besedo za BeautifulSoup.
spletna stran = zahteve.pridobi (URL)Zgornja koda pridobi URL spletne strani in iz nje ustvari neposreden niz, ki ga shrani v spremenljivko.
$ webcontent = spletna stran.vsebinoZgornji ukaz kopira vsebino spletne strani in jo dodeli spremenljivi spletni vsebini.
S tem smo zaključili s knjižnico zahtev. Preostalo je le še spremeniti možnosti knjižnice zahtev v možnosti BeautifulSoup.
$ htmlcontent = bs (webcontent, “html.razčlenjevalnik “)
Ta razčleni objekt zahteve in ga spremeni v berljive objekte HTML.
S tem je poskrbljeno, lahko preidemo na dejansko strganje.
Strganje po spletu s Pythonom in BeautifulSoup
Gremo naprej in poglejmo, kako lahko s BeautifulSoup strgamo po podatkovnih predmetih HTML.
Za ponazoritev primera bomo med razlago stvari delali s tem html delčkom:
Do vsebine tega delčka lahko dostopamo s programom BeautifulSoup in ga uporabimo na spremenljivki vsebine HTML, kot je opisano spodaj:
Zgornja koda išče vse imenovane oznake
Če želite hkrati shraniti imenovane oznake
na seznam bi izdali končno kodo pod:
Izhod se mora vrniti tako:
Da pokličete enega od
Zdaj si oglejmo, kako izbrati
oznake, ki upoštevajo njihove značilnosti. Ločiti a , rabili bi
za div v juhi.find_all ('div', attrs = 'class' = 'Tech_head'):
To prinese
oznaka.Dobili bi:
Tehnologija
Vse brez oznak.
Na koncu bomo opisali, kako izbrati vrednost atributa v oznaki. Koda mora imeti to oznako:
Če želite izvesti vrednost, povezano z atributom src, uporabite naslednje:
htmlcontent.najdi („img“) [„src“]In izhod bi se izkazal kot:
"images_4 / a-beginners-guide-to-web-scraping-with-python-and-beautiful-juha.jpg "
Oh fant, to je zagotovo veliko dela!
Če se vam zdi, da poznate python ali HTML, nezadostno ali če ste preprosto preobremenjeni s strganjem po spletu, ne skrbite.
Če ste podjetje, ki mora redno pridobivati določeno vrsto podatkov, ne more pa se strgati po spletu, lahko to težavo obidete. Toda vedite, da vas bo to stalo nekaj denarja. Poiščete lahko nekoga, ki bo za vas opravil strganje, ali pa dobite vrhunsko podatkovno storitev na spletnih mestih, kot sta Google in Twitter, da delijo podatke. Ti delijo svoje podatke z uporabo API-jev, vendar so ti klici API omejeni na dan. Poleg tega so spletna mesta, kot so ta, lahko zelo zaščitna pred svojimi podatki. Običajno veliko takih spletnih mest sploh ne deli nobenih svojih podatkov.
Zadnje misli
Preden zaključimo, naj vam povem na glas, če še ni bilo samoumevno; ukazi find (), find_all () so vaši najboljši prijatelji, ko se strgate s BeautifulSoup. Čeprav je na voljo veliko več za strganje glavnih podatkov s Pythonom, bi moral biti ta vodnik dovolj za tiste, ki ste šele začeli.