reppy

Софтуер снимки:
reppy
Софтуер детайли:
Версия: 0.1.0
Дата на качване: 11 May 15
Розробник: Dan Lecocq
Разрешително: Безплатно
Популярност: 5

Rating: nan/5 (Total Votes: 0)

reppy започна от липса на memoization подкрепа в други robots.txt парсери срещани, както и липсата на подкрепа за Crawl-забавяне и на сайта на вградената robotparser.
<Силен> Matching
Този пакет подкрепя 1996 RFC, както и допълнителни често-изпълнявани функции, като маска съвпадение, обхождане-забавяне и карти на сайтове. Има различни подходи за съвпадение Позволете и Забрани. Единият подход е да се използват най-дългата минута. Друго е да се използват най-конкретен. Този пакет избира да следва директивата, която е най-дългата, предположението е, че той е този, който е най-специфично - термин, който е малко по-трудно да се определят в този контекст.
<Силен>
Употреба
Най-лесният начин да се използва reppy е просто да попитам, ако е / са разрешени за URL или URL адреси:
внос reppy
# Това имплицитно извлича robot.txt example.com е
reppy.allowed ("http://example.com/howdy)
=> # True
# Сега, това е кеширана въз основа на която е трябвало да изтече (прочетете повече в `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 след данните е изтекъл. Това е напълно прозрачен за вас, така че вие ​​дори не трябва да мисля за това - просто да го използвате като нормална. Или, ако предпочитате, можете да зададете своя собствена времето за живо, което има предимство:
внос 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 адрес:
# Това е постижимо
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 атрибути. Забавянето на обхождане се разглежда поотделно за всеки потребител агент, но Sitemap, се считат за глобални. Ако те не са определени, забавянето на обхождане е None и Sitemaps е празен списък. Например, ако това е моят robots.txt:
User-агент: *
Crawl-закъснение: 1
Карта на сайта: http://example.com/sitemap.xml
Карта на сайта: 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 съвпадение
Можете да предостави потребителски агент по ваш избор за извличането на robots.txt, а след низ потребителски агент ние мач е в неизпълнение на това, което се появи преди първия /. Например, ако ви предостави агентът на потребителя като "MyCrawler / 1.0", тогава ние ще използваме "MyCrawler" като низ да съвпада с потребителски агент. Сравненията са чувствителни към регистъра, и ние не подкрепяме заместващи символи в 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")
<Силен> Path-Matching
Path съвпадение поддържа и двата * и $

<силни> Характеристики

  • Memoization на пресилено robots.txt
  • Изтичане взета от Изтича глава
  • Партида заявки
  • Конфигуриране на потребителския агент за извличането на robots.txt
  • Automatic refetching Базирайки се на изтичане
  • Подкрепа за Crawl-забавяне
  • Подкрепа за Sitemaps
  • Wildcard съвпадение

<силни> Изисквания

  • Python

Друг софтуер на разработчика Dan Lecocq

aws-trade-in
aws-trade-in

20 Feb 15

asis
asis

20 Feb 15

Коментари към reppy

Коментари не е намерена
добавите коментар
Включете на изображения!