Ανάκτηση και παρουσίαση πληροφορίας από αδόμητο κείμενο στο διαδίκτυο
Extracting and presenting data from unstructured web sources
Μεταπτυχιακή διπλωματική εργασία
Συγγραφέας
Τσώνη, Αθηνά
Ημερομηνία
2023-07-18Επιβλέπων
Ζάχαρης, ΝικόλαοςΛέξεις-κλειδιά
Εξαγωγή δεδομένων ιστού ; Web scraping ; Web data extraction ; Python ; Web applicationΠερίληψη
Η παρούσα διπλωματική εργασία ασχολείται με την εξαγωγή δεδομένων από το διαδίκτυο ή αλλιώς web scraping. Το διαδίκτυο αποτελεί τη μεγαλύτερη πηγή πληροφοριών στη σημερινή εποχή και περιλαμβάνει ως επί το πλείστον αδόμητα δεδομένα που είναι δύσκολο να συλλεχθούν. Η εξαγωγή των δεδομένων μπορεί να γίνει με αντιγραφή - επικόλληση, αλλά ο τρόπος αυτός είναι εξαιρετικά χρονοβόρος και μη αποδοτικός σε περιπτώσεις μεγάλου όγκου δεδομένων. Για να επιταχύνουμε και να αυτοματοποιήσουμε τη συλλογή πληροφοριών από τον παγκόσμιο ιστό χρησιμοποιούμε τη μέθοδο του web scraping.
Η εργασία αναφέρεται αρχικά στις διάφορες τεχνικές και εφαρμογές του web scraping. Στη συνέχεια παρουσιάζονται τα σημαντικότερα εργαλεία για τη συλλογή δεδομένων μέσω προγραμματισμού ή μέσω έτοιμων εφαρμογών, όπως SaaS εργαλεία, desktop εφαρμογές και add-ons για τα προγράμματα περιήγησης. Η εργασία επικεντρώνεται στη συλλογή δεδομένων με Python και παρουσιάζονται οι κυριότερες βιβλιοθήκες που διαθέτει η γλώσσα για web scraping. Τέλος, περιγράφονται οι καλές πρακτικές που πρέπει να ακολουθούνται κατά την άντληση δεδομένων από το διαδίκτυο, όπως η προσαρμογή των κεφαλίδων HTTP, η διαχείριση των cookies κλπ.
Στο πλαίσιο της εργασίας υλοποιήθηκε μια διαδικτυακή εφαρμογή για τη συλλογή αξιολογήσεων από έναν δημοφιλή ιστότοπο σύγκρισης τιμών. Η εφαρμογή διαθέτει ένα απλό UI με φόρμα αναζήτησης, στην οποία ο χρήστης εισάγει το προϊόν που τον ενδιαφέρει. Οι αξιολογήσεις του προϊόντος εμφανίζονται σε μορφή πίνακα και ο χρήστης μπορεί να κατεβάσει τα αποτελέσματα σε αρχείο CSV. Η υλοποίηση της εφαρμογής έγινε σε γλώσσα Python και χρησιμοποιήθηκαν τα frameworks Scrapy και Flask.
Περίληψη
The present thesis concerns web scraping: the process of collecting web data in an automated manner. The internet is the largest source of information nowadays and contains mostly unstructured data that is difficult to collect. While manual extraction through copy-pasting is feasible, it is a time-consuming and inefficient process, particularly when dealing with large amounts of data. To expedite and automate the information gathering process from the World Wide Web, web scraping is employed.
This thesis reviews the different web scraping approaches, techniques and areas of application. It presents various tools for extracting data programmatically, and software tools, such as SaaS scrapers, desktop scrapers and browser extensions. The study primarily focuses on data collection using the Python programming language and highlights the main Python libraries and tools used for web scraping. Additionally, it describes best practices for extracting web data, such as adjusting HTTP headers, handling cookies, and more.
In the second part of the thesis, a web application was implemented to collect reviews from a popular price comparison website. The application has a simple UI with a search form where users can type in the product of interest. Product reviews are scraped and displayed in tabular format, and users have the option to download the results in a CSV file. The application was developed in Python using the Scrapy and Flask frameworks.