Dobrodošli v repozitoriju naše skupine (Mihael Švigelj, Lovro Vražič, Luka Zakšek) za oddajo seminarskih nalog pri predmetu Iskanje in ekstrakcija podatkov s spleta (2019/20) na Fakulteti za računalništvo in informatiko Univerze v Ljubljani.
Crawler je projekt, ki smo ga razvili Luka, Mihael in Lovro za prvo domačo nalogo pri predmetu Iskanje in ekstrakcija podatkov s spleta.
Uporabi pip za namestitev.
pip install psycopg2
pip install selenium
pip install tldextract
pip install beautifulsoup4
pip install requests
Chrome webdriver je že v repozitoriju, tako da ga ni potrebno posebej inštalirat.
Postgres baza že teče na vps-ju, zato v kodi ni potrebno spreminjat nobenih argumentov, ampak bo ob zagonu skripte vse delovalo "out of the box".
Opomba: Ob vsakem zagonu crawlerja, se baza na začetku resetira. Tako da vnosov iz prejšnjih izvedb crawlerja ni v bazi.
Poženi crawler z ukazom
cd crawler
python crawler.py <int_stevilo_threadov>
Primer za 6 threadov:
cd crawler
python crawler.py 6
Za pregled vizualizacije se lahko uporabi Gephi program, v katerem odpremo datoteko links_visualisation.gephi.
Cilj seminarske naloge je bil razviti 3 metode ekstrakcije podatkov s podanih vzorcev spletnih strani.
Uporabi pip za namestitev. Potrebne so sledeče knjižnice:
pip install lxml
pip install html2text
pip install htmldom
Skripta run-extraction.py se nahaja v direktoriju "implementation-extraction", od koder jo tudi poženemo.
Na voljo so 3 načini ekstrakcije:
- A: Uporaba RegEx (Regular expressions):
python run-extraction.py A
- B: Uporaba XPath ekstrakcije:
python run-extraction.py B
- C: TODOTODOTODO Uporaba ... TODO ...:
python run-extraction.py C
Če podamo napačen način izvedbe (A/B/C), nas program o tem opozori ter se preneha izvajati. Ekstrakcija se naredi na spletnih straneh, podanih v direktoriju "input-extraction".
Uporabi pip za namestitev.
pip install beautifulsoup4
pip install nltk
Ob zagonu knjižnica nltk morda potrebuje dodatne pakete, katere pridobite s sledenjem izpisanih navodil v terminalu.
Vse skripte se nahajajo v mapi implementation-indexing. Tam se nahaja tudi mapa data znotraj katere so shranjene html datoteke iz katerih program ekstrahira tekst.
Za preiskovanje z naivnim algoritmom:
python .\run-basic-search.py [vnos za poizvedovanje]
Za preiskovanje z uporabo inverted-index:
python .\run-sqlite-search.py [vnos za poizvedovanje]