Info surinkimas iš web puslapio
Programavimo video. Šiandien mokomės perskaityti informaciją esančią web puslapyje ir įkelti ją į kodą, kur jau fantazijos reikalas ką su ja nuveikt... :) PDF'as, dominantis skyrius: "Python Aplinka" https://www.griaustinis.lt/python_receptai_short.pdf
Santrauka
Turinys
Reikalavimai
requests biblioteka
pip install requests
BeautifulSoup4 biblioteka
pip install beautifulsoup4
Video metu naudojamas Jupyter Notebook.
Vienas iš būdų yra instaliuoti Anaconda kas yra duomenų mokslui pritaikytas programų rinkinys, turintis tiek Python, tiek Jupyter Notebook, tiek krūvą kitų naudingų dalykų.
Kitas būdas - sekti nurodymus Šitam PDF'e
Kaip tai veikia
Su requests
biblioteka mes galime parsisiųsti visą puslapio turinį:
import requests
raw = requests.get("https://www.aruodas.lt/").text
O su beautifulSoup4
biblioteka, mes galime lengvai analizuoti tą turinį.
Puslapio analizė
Prireiks šiek tiek bazinių HTML žinių (arba galit tiesiog sekti pagal video), tam rekomenduoju w3Schools.
Pirma mums reikia paversti turinį soup objektu:
from bs4 import BeautifulSoup
soup = BeautifulSoup(raw)
Tada galime vyktydi elementų paiešką:
soup.find_all("div", {"class": "something"})
find
randa pirmą elementą, find_all
randa visus elementus atitinkančius paiešką puslapyje. Pirmas argumentas yra HTML elemento tipas, pvz. div
, a
, span
ir t.t..., antras - elemento atributai pagal kuriuos ieškosime.
Trumpai:
nuorodos turės tipą
a
Teksto blokai bus
div
, arbaspan
Lentelės susideda iš
tr
(table row) eilutės irtd
(table data) stulpelio elementųDažniausi atributai pagal kuriuos ieškosite (turbūt daugiau nei 90% atvejų) bus
id
arbaclass
.class
- gali būti 1 ir daugiau elementų puslapyje,id
- unikalūs.