Tutorial Scrapy: Πώς να φτιάξετε ένα πρόγραμμα ανίχνευσης Ιστού χρησιμοποιώντας το Scrapy;



Σε αυτό το άρθρο του Scrapy Tutorial, θα μάθετε να δημιουργείτε ένα πρόγραμμα ανίχνευσης ιστού με διάφορες τεχνικές εξαγωγής δεδομένων και τρόπους αποθήκευσης των δεδομένων σε μια βάση δεδομένων.

Το web scraping είναι ένας αποτελεσματικός τρόπος συλλογής δεδομένων από τις ιστοσελίδες, έχει γίνει ένα αποτελεσματικό εργαλείο . Με διάφορα βιβλιοθήκες δώρο για ξύσιμο όπως , το έργο ενός επιστήμονα δεδομένων γίνεται βέλτιστο. Το Scrapy είναι ένα ισχυρό πλαίσιο ιστού που χρησιμοποιείται για την εξαγωγή, επεξεργασία και αποθήκευση δεδομένων. Θα μάθουμε πώς μπορούμε να φτιάξουμε ένα πρόγραμμα ανίχνευσης ιστού σε αυτό το σεμινάριο scrapy, ακολουθούν τα θέματα που συζητούνται σε αυτό το ιστολόγιο:

Τι είναι το Scrapy;

Το Scrapy είναι ένα ελεύθερο και ανοιχτού κώδικα διαδικτυακό πλαίσιο ανίχνευσης γραμμένο σε python. Αρχικά σχεδιάστηκε για να εκτελέσει , αλλά μπορεί επίσης να χρησιμοποιηθεί για εξαγωγή δεδομένων χρησιμοποιώντας API. Συντηρείται από την Scrapinghub ltd.





Το Scrapy είναι ένα πλήρες πακέτο όσον αφορά τη λήψη των ιστοσελίδων, την επεξεργασία και την αποθήκευση των δεδομένων στο .

Είναι σαν ένα εργοστάσιο παραγωγής ηλεκτρικού ρεύματος όταν πρόκειται για ξύσιμο Ιστού με πολλούς τρόπους για την απόσυρση ενός ιστότοπου. Το Scrapy χειρίζεται μεγαλύτερες εργασίες με ευκολία, αποκόλληση πολλών σελίδων ή μιας ομάδας διευθύνσεων URL σε λιγότερο από ένα λεπτό. Χρησιμοποιεί ένα twister που λειτουργεί ασύγχρονα για να επιτευχθεί ταυτόχρονη.



Παρέχει συμβόλαια αράχνης που μας επιτρέπουν να δημιουργούμε γενικά, καθώς και προγράμματα ανίχνευσης σε βάθος. Το Scrapy παρέχει επίσης αγωγούς στοιχείων για τη δημιουργία λειτουργιών σε μια αράχνη που μπορούν να εκτελέσουν διάφορες λειτουργίες όπως η αντικατάσταση τιμών σε δεδομένα κ.λπ.

αρχιτεκτονική scrapy-φροντιστήριο φροντίδας-edureka

Τι είναι το Web-Crawler;

Το πρόγραμμα ανίχνευσης ιστού είναι ένα πρόγραμμα που αναζητά αυτόματα έγγραφα στον Ιστό. Προγραμματίζονται κυρίως για επαναλαμβανόμενη δράση για αυτόματη περιήγηση.

Πως δουλεύει?



πώς να χρησιμοποιήσετε τη μέθοδο trim στο java

Ένα πρόγραμμα ανίχνευσης ιστού μοιάζει αρκετά με έναν βιβλιοθηκονόμο. Αναζητά τις πληροφορίες στον Ιστό, κατηγοριοποιεί τις πληροφορίες και στη συνέχεια ευρετηριάζει και καταλογογραφεί τις πληροφορίες για τις ανιχνευμένες πληροφορίες που πρέπει να ανακτηθούν και να αποθηκευτούν αναλόγως.

Οι λειτουργίες που θα εκτελεστούν από το πρόγραμμα ανίχνευσης δημιουργούνται εκ των προτέρων και στη συνέχεια ο ανιχνευτής εκτελεί αυτόματα όλες αυτές τις λειτουργίες που θα δημιουργήσουν ένα ευρετήριο. Αυτά τα ευρετήρια είναι προσβάσιμα από ένα λογισμικό εξόδου.

Ας ρίξουμε μια ματιά σε διάφορες εφαρμογές που μπορεί να χρησιμοποιηθεί ένα πρόγραμμα ανίχνευσης ιστού για:

  • Οι πύλες σύγκρισης τιμών αναζητούν συγκεκριμένες λεπτομέρειες προϊόντος για να κάνουν σύγκριση των τιμών σε διαφορετικές πλατφόρμες χρησιμοποιώντας ένα πρόγραμμα ανίχνευσης ιστού.

  • Το web-crawler παίζει πολύ σημαντικό ρόλο στον τομέα της εξόρυξης δεδομένων για την ανάκτηση πληροφοριών.

  • Τα εργαλεία ανάλυσης δεδομένων χρησιμοποιούν προγράμματα ανίχνευσης ιστού για να υπολογίσουν τα δεδομένα για τις προβολές σελίδων, καθώς και για εξερχόμενους και εξερχόμενους συνδέσμους.

  • Τα προγράμματα ανίχνευσης χρησιμεύουν επίσης σε κέντρα πληροφοριών για τη συλλογή δεδομένων, όπως πύλες ειδήσεων.

Πώς να εγκαταστήσετε το Scrapy;

Για να εγκαταστήσετε το scrapy στο σύστημά σας, συνιστάται να το εγκαταστήσετε σε ένα ειδικό virtualenv. Η εγκατάσταση λειτουργεί αρκετά παρόμοια με οποιοδήποτε άλλο πακέτο στο python, εάν χρησιμοποιείτε κόντα περιβάλλον, χρησιμοποιήστε την ακόλουθη εντολή για να εγκαταστήσετε το scrapy:

εγκατάσταση conda -c conda-forge scrapy

μπορείτε επίσης να χρησιμοποιήσετε το περιβάλλον pip για να εγκαταστήσετε scrapy,

εγκατάσταση pip scrapy

Μπορεί να υπάρχουν μερικές εξαρτήσεις σύνταξης ανάλογα με το λειτουργικό σας σύστημα. Το Scrapy είναι γραμμένο σε καθαρό python και μπορεί να εξαρτάται από μερικά πακέτα python όπως:

  • lxml - Είναι ένας αποτελεσματικός αναλυτής XML και HTML.

  • parcel - Μια βιβλιοθήκη εξαγωγής HTML / XML γραμμένη στην κορυφή στο lxml

  • W3lib - Είναι ένας βοηθός πολλαπλών χρήσεων για την αντιμετώπιση διευθύνσεων URL και κωδικοποιήσεων ιστοσελίδων

  • twisted - Ένα ασύγχρονο πλαίσιο δικτύωσης

  • κρυπτογραφία - Βοηθά σε διάφορες ανάγκες ασφαλείας σε επίπεδο δικτύου

Ξεκινώντας το πρώτο σας πρόγραμμα Scrapy

Για να ξεκινήσετε το πρώτο σας έργο scrapy, μεταβείτε στον κατάλογο ή τη θέση όπου θέλετε να αποθηκεύσετε τα αρχεία σας και εκτελέστε την ακόλουθη εντολή

όνομα έργου scrapy startproject

Αφού εκτελέσετε αυτήν την εντολή, θα λάβετε τους ακόλουθους καταλόγους που θα δημιουργηθούν σε αυτήν την τοποθεσία.

  • όνομα έργου /

    υλοποιήστε την ουρά προτεραιότητας c ++
    • scrapy.cfg: αναπτύσσει αρχείο διαμόρφωσης

  • όνομα έργου /

    • __init__.py: ενότητα έργων python

    • items.py: αρχείο ορισμού στοιχείων έργου

    • middlewares.py: αρχείο μεσαίου έργου

    • pipelines.py: αρχείο αγωγών έργου

    • settings.py: αρχείο ρυθμίσεων έργου

  • αράχνες /

    • __init__.py: ένας κατάλογος όπου αργότερα θα βάλετε τις αράχνες σας

Κάνοντας την πρώτη σας αράχνη

Οι αράχνες είναι μαθήματα που ορίζουμε και χρησιμοποιούνται για τη συλλογή πληροφοριών από τον Ιστό. Πρέπει να κάνετε υποκατηγορία scrapy. Spider και καθορίστε τα αρχικά αιτήματα που πρέπει να υποβάλετε.

Γράφετε τον κωδικό για την αράχνη σας σε ένα ξεχωριστό αρχείο python και τον αποθηκεύετε στον κατάλογο ονόματος / αράχνης του έργου σας.

quotes_spider.py

εισαγωγή κλάσης scrapy QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / σελίδα / 2 /,] για url σε url: απόδοση scrapy.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filename = 'quotes-% s.html'% page with open (filename, 'wb') as f: f.write (response.body) self.log ('αποθηκευμένο αρχείο% s'% όνομα αρχείου)

Όπως μπορείτε να δείτε, έχουμε ορίσει διάφορες λειτουργίες στις αράχνες μας,

  • Όνομα: Αναγνωρίζει την αράχνη, πρέπει να είναι μοναδική σε όλο το έργο.

  • start_requests (): Πρέπει να επιστρέψει ένα επαναλαμβανόμενο αίτημα με το οποίο θα ξεκινήσει η ανίχνευση η αράχνη.

  • parse (): Είναι μια μέθοδος που καλείται να χειριστεί την απόκριση που έχει ληφθεί με κάθε αίτημα.

Εξαγωγή δεδομένων

Μέχρι τώρα η αράχνη δεν εξάγει δεδομένα, απλώς αποθηκεύτηκε ολόκληρο το αρχείο HTML. Μια αράχνη scrapy δημιουργεί συνήθως πολλά λεξικά που περιέχουν τα δεδομένα που εξάγονται από τη σελίδα. Χρησιμοποιούμε τη λέξη-κλειδί απόδοσης στο python στο callback για να εξαγάγουμε τα δεδομένα.

εισαγωγή κλάσης scrapy QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (self, response): for quote in response.css ('div.quote'): απόδοση {'text': quote.css (span.text :: text '). get (),' author ': quote .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Όταν εκτελείτε αυτήν την αράχνη, θα εξάγει τα εξαγόμενα δεδομένα με το αρχείο καταγραφής.

Αποθήκευση των δεδομένων

Ο απλούστερος τρόπος αποθήκευσης των εξαγόμενων δεδομένων είναι χρησιμοποιώντας τις εξαγωγές ροών, χρησιμοποιήστε την ακόλουθη εντολή για να αποθηκεύσετε τα δεδομένα σας.

αποσπάσματα για ανίχνευση scrapy -o quotes.json

Αυτή η εντολή θα δημιουργήσει ένα αρχείο quotes.json που περιέχει όλα τα αποξεσμένα στοιχεία, σε σειριακή σειρά JSON .

Αυτό μας φέρνει στο τέλος αυτού του άρθρου όπου μάθαμε πώς μπορούμε να κάνουμε έναν ανιχνευτή ιστού χρησιμοποιώντας scrapy στο python για να αποκόψουμε έναν ιστότοπο και να εξαγάγουμε τα δεδομένα σε ένα αρχείο JSON. Ελπίζω να είστε ξεκάθαροι με όλα όσα έχουν μοιραστεί μαζί σας σε αυτό το σεμινάριο.

Εάν βρήκατε αυτό το άρθρο σχετικά με το 'Scrapy Tutorial' σχετικό, ρίξτε μια ματιά στο μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο.

Είμαστε εδώ για να σας βοηθήσουμε με κάθε βήμα στο ταξίδι σας και να δημιουργήσετε ένα πρόγραμμα σπουδών που έχει σχεδιαστεί για φοιτητές και επαγγελματίες που θέλουν να γίνουν . Το μάθημα έχει σχεδιαστεί για να σας δώσει μια πρώτη αρχή στον προγραμματισμό Python και να σας εκπαιδεύσει τόσο για τις βασικές όσο και για τις προηγμένες ιδέες Python μαζί με διάφορες σαν

Εάν συναντήσετε οποιεσδήποτε ερωτήσεις, μη διστάσετε να κάνετε όλες τις ερωτήσεις σας στην ενότητα σχολίων του 'Scrapy Tutorial' και η ομάδα μας θα χαρεί να απαντήσει.