reppy

Screenshot Λογισμικό:
reppy
Στοιχεία Λογισμικού:
Εκδοχή: 0.1.0
Ανεβάστε ημερομηνία: 11 May 15
Προγραμματιστής: Dan Lecocq
Άδεια: Δωρεάν
Δημοτικότητα: 5

Rating: nan/5 (Total Votes: 0)

reppy ξεκίνησε από μια έλλειψη υποστήριξης memoization σε άλλες robots.txt parsers αντιμετώπισε, και την έλλειψη υποστήριξης για Crawl-καθυστέρηση και Χάρτης στον ενσωματωμένο robotparser.
Αντιστοίχιση
Αυτό το πακέτο υποστηρίζει το 1996 RFC, καθώς και επιπλέον συνήθως εφαρμόζονται σε χαρακτηριστικά, όπως μπαλαντέρ αντιστοίχισης, crawl-καθυστέρηση, και το Sitemaps. Υπάρχουν διαφορετικές προσεγγίσεις για να ταιριάζουν Allow και Απαγορεύστε. Μία προσέγγιση είναι να χρησιμοποιηθεί το μακρύτερο αγώνα. Μια άλλη είναι να χρησιμοποιήσετε την πιο συγκεκριμένο. Αυτό το πακέτο επιλέγει να ακολουθήσει την οδηγία που είναι η μεγαλύτερη, η παραδοχή ότι είναι αυτός που είναι πιο συγκεκριμένο - ένας όρος που είναι λίγο δύσκολο να οριστούν σε αυτό το πλαίσιο.

Χρήση

Ο ευκολότερος τρόπος για να χρησιμοποιήσετε reppy είναι απλά να ρωτήσω αν μια διεύθυνση URL ή διευθύνσεις URL είναι / επιτρέπονται:
reppy εισαγωγής
# Αυτό φέρνει σιωπηρά robot.txt example.com του
reppy.allowed («http://example.com/howdy»)
# => True
# Τώρα, αυτό είναι cached με βάση το πότε θα έληγε η προθεσμία (διαβάστε περισσότερα στο `Expiration`)
reppy.allowed («http://example.com/hello»)
# => True
# Υποστηρίζει επίσης ερωτήματα παρτίδα
reppy.allowed (['http://example.com/allowed1 »,« http://example.com/allowed2 »,« http://example.com/disallowed'])
# => ['Http://example.com/allowed1 »,« http://example.com/allowed2']
# Ερωτήματα παρτίδας είναι ακόμη υποστηρίζεται απέναντι από διάφορους τομείς (αν και φέρνει δεν γίνονται παράλληλα)
reppy.allowed (['http://a.com/allowed »,« http://b.com/allowed »,« http://b.com/disallowed'])
# => ['Http://a.com/allowed »,« http://b.com/allowed']
Είναι πολύ εύκολο στη χρήση. Η προεπιλεγμένη συμπεριφορά είναι να το φέρω για εσάς με urllib2
reppy εισαγωγής
# Κάντε μια reppy αντικείμενο που σχετίζεται με ένα συγκεκριμένο τομέα
r = reppy.fetch («http://example.com/robots.txt»)
αλλά μπορείτε απλά να αναλύσει εύκολα μια σειρά που θα απέφερε.
urllib2 εισαγωγής
δεδομένων = urllib2.urlopen («http://example.com/robots.txt») .read ()
r = reppy.parse (δεδομένα)
Λήξη
Το κύριο πλεονέκτημα της reppy φέρω το robots.txt για σας είναι ότι μπορεί να refetch αυτόματα μετά τη λήξη του δεδομένων. Είναι εντελώς διαφανής για εσάς, έτσι ώστε να μην χρειάζεται καν να το σκεφτείτε - απλά να συνεχίσετε να χρησιμοποιείτε ως συνήθως. Ή, αν προτιμάτε, μπορείτε να ορίσετε το δικό σας χρόνο-to-live, η οποία υπερισχύει:
reppy εισαγωγής
r = reppy.fetch («http://example.com/robots.txt»)
r.ttl
# => 10800 (Πόσο καιρό να ζήσει;)
r.expired ()
# => False (Έχει λήξει;)
r.remaining ()
# => 10798 (Πόσο καιρό μέχρι να λήξει)
r = reppy.fetch («http://example.com/robots.txt», TTL = 1)
# Περιμένετε 2 δευτερόλεπτα
r.expired ()
# => True
Ερωτήματα
Reppy προσπαθεί να παρακολουθείτε υποδοχής, έτσι ώστε να μην χρειάζεται να. Αυτό γίνεται αυτόματα όταν χρησιμοποιείτε το φέρω, ή μπορείτε να παρέχετε προαιρετικά το url να το τραβηγμένο από με μεταγλώττιση. Με αυτόν τον τρόπο σας επιτρέπει να παρέχει ακριβώς τη διαδρομή όταν αναζητούνται. Διαφορετικά, θα πρέπει να παρέχει το σύνολο url:
# Αυτό είναι εφικτό
r = reppy.fetch («http://example.com/robots.txt»)
r.allowed ('/')
r.allowed (['/ γεια »,« / Γεια σου »])
# Και έτσι είναι αυτή η
δεδομένων = urllib2.urlopen («http://example.com/robots.txt») .read ()
r = reppy.parse (δεδομένα, url = "http: //example.com/robots.txt»)
r.allowed (['/', '/ γεια »,« / Γεια σου »])
# Ωστόσο, δεν έμμεσα γνωρίζουν ποια περιοχή αυτοί είναι από
reppy.allowed (['/', '/ γεια »,« / Γεια σου »])
Crawl-Delay και Sitemaps
Reppy εκθέτει επίσης την μη-RFC, αλλά ευρέως χρησιμοποιούμενη Crawl-Delay και Sitemaps χαρακτηριστικά. Η καθυστέρηση σέρνεται θεωρείται σε βάση ανά χρήστη παράγοντας, αλλά οι Sitemaps θεωρούνται παγκόσμια. Εάν δεν έχουν καθοριστεί, η καθυστέρηση ανίχνευσης είναι Κανένα, και Sitemaps είναι μια κενή λίστα. Για παράδειγμα, αν αυτό είναι robots.txt μου:
User-agent: *
Crawl-καθυστέρηση: 1
Sitemap: http://example.com/sitemap.xml
Sitemap: http://example.com/sitemap2.xml
Στη συνέχεια, αυτά είναι προσιτά:
με το αρχείο ('myrobots.txt »,« r ») ως στ:
& Nbsp? R = reppy.parse (f.read ())
r.sitemaps
# => ['Http://example.com/sitemap.xml »,« http://example.com/sitemap2.xml']
r.crawlDelay
# => 1
User-Agent Matching
Μπορείτε να δώσετε ένα πράκτορα χρήστη της επιλογής σας για την ανάκτηση robots.txt, και στη συνέχεια το string παράγοντα χρήστη ταιριάζουμε έχει αθετήσει αυτήν που εμφανίζεται πριν από την πρώτη /. Για παράδειγμα, αν σας παρέχει ο πράκτορας χρήστη ως «MyCrawler / 1.0", τότε θα χρησιμοποιήσουμε «MyCrawler» ως το κορδόνι για να ταιριάξει με User-agent. Οι συγκρίσεις είναι διάκριση πεζών-κεφαλαίων, και δεν υποστηρίζουμε μπαλαντέρ στο User-Agent. Εάν αυτή η προεπιλογή δεν σας ταιριάζει, μπορείτε να παρέχετε μια εναλλακτική λύση:
# Αυτό θα ταιριάξει με «myuseragent από προεπιλογή
r = reppy.fetch («http://example.com/robots.txt», userAgent = 'MyUserAgent / 1,0 ")
# Αυτό θα ταιριάξει με «someotheragent» αντί
r = reppy.fetch («http://example.com/robots.txt», userAgent = 'MyUserAgent / 1.0 ", userAgentString« someotheragent »=)
Διαδρομή-Matching
Διαδρομή ταιριάζουν υποστηρίζει τόσο * και $

Χαρακτηριστικά :

  • Memoization της παρατραβηγμένο robots.txt
  • Λήξη λαμβάνονται από την κεφαλίδα Expires
  • ερωτήματα Παρτίδα
  • Διαμορφώσιμες πράκτορα χρήστη για την ανάκτηση robots.txt
  • Αυτόματη βασίζοντας refetching στη λήξη
  • Υποστήριξη για το Crawl-καθυστέρηση
  • Υποστήριξη για το Sitemaps
  • μπαλαντέρ αντιστοίχισης

Απαιτήσεις :

  • Python

Άλλο λογισμικό του προγραμματιστή Dan Lecocq

asis
asis

20 Feb 15

aws-trade-in
aws-trade-in

20 Feb 15

Σχόλια για reppy

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!