reppy

Скріншот програми:
reppy
Дані програми:
Версія: 0.1.0
Дата завантаження: 11 May 15
Розробник: Dan Lecocq
Ліцензія: Безкоштовно
Популярність: 5

Rating: nan/5 (Total Votes: 0)

reppy почав через відсутність підтримки мемоізаціі в інших robots.txt аналізаторів, з якими стикаються, і відсутність підтримки Crawl затримки і сайту в побудованому в robotparser.
<Сильний> Відповідність
Цей пакет підтримує 1996 RFC, а також додаткові, зазвичай реалізовані функції, такі як груповий символ, обходу затримки, і карти сайту. Є різні підходи до відповідності Дозволити і заборонити. Один з підходів полягає у використанні збіг найбільшої довжини. Іншим способом є використання найбільш специфічні. Цей пакет вибирає слідувати директива, яка довга, припущення, що є, що це той, який найбільш специфічні - термін, який трохи важко визначити в цьому контексті.
<Сильний>
Використання
Найпростіший спосіб використовувати reppy це просто запитати, якщо посилання або 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']
# Пакетні запити навіть підтримували accross декількох доменів (хоча вибірок, які не зробили паралельно)
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 об'єкт, пов'язаний з конкретною області
г = reppy.fetch ('http://example.com/robots.txt ")
але ви можете так само легко розібрати рядок, що ви скачали.
імпорт urllib2
Дані = urllib2.urlopen ('http://example.com/robots.txt') .read ()
г = reppy.parse (дані)
<Сильний> Дійсно
Основною перевагою наявності reppy принести robots.txt для Вас є те, що вона може автоматично refetch після його дані закінчився. Це повністю прозоро для вас, так що ви не повинні навіть думати про це - просто тримати його використання, як звичайно. Або, якщо ви віддаєте перевагу, ви можете налаштувати свій власний часу до проживання, який має пріоритет:
імпорт reppy
г = reppy.fetch ('http://example.com/robots.txt ")
r.ttl
# => 10800 (Як довго жити?)
r.expired ()
# => False (була вона закінчився?)
r.remaining ()
# => 10798 (Як довго, поки не закінчиться)
г = reppy.fetch ('http://example.com/robots.txt ", TTL = 1)
# Зачекайте 2 секунди
r.expired ()
# => True
<Сильний> Перелік
Reppy намагається відслідковувати господаря, так що ви не повинні. Це робиться автоматично, коли ви використовуєте вибірки, або ви можете опціонально надати URL ви завантажили його з розбору с. Це дозволяє забезпечити тільки шлях при запиті. В іншому випадку, ви повинні надати всю URL:
# Це здійснимо
г = reppy.fetch ('http://example.com/robots.txt ")
r.allowed ('/')
r.allowed (['/ привіт', '/ привіт'])
# І так це
Дані = urllib2.urlopen ('http://example.com/robots.txt') .read ()
г = reppy.parse (дані, гіперпосилання = 'HTTP: //example.com/robots.txt ")
r.allowed (['/', '/ привіт', '/ привіт'])
# Однак, ми не знаємо, неявно домен, який ці з
reppy.allowed (['/', '/ привіт', '/ привіт'])
<Сильний> Сканування із затримкою і Карти сайту
Reppy також піддаються не-RFC, але широко використовуваний сканування-затримка і Карти сайту атрибутів. Затримка сканування розглядається на агента для кожного користувача, але карти сайту вважаються глобальними. Якщо вони не вказані, затримка сканування не одного, а карти сайту є порожній список. Наприклад, якщо це мій robots.txt:
User-Agent: *
Сканування затримки: 1
Карта сайту: http://example.com/sitemap.xml
Карта сайту: http://example.com/sitemap2.xml
Потім ці доступні:
з файлом ("myrobots.txt ',' г ') як F:
& NBSP; г = 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. Порівняння без урахування регістру, і ми не підтримуємо маски в User-Agent. Якщо це за замовчуванням вас не влаштовує, ви можете надати альтернативу:
# Це буде матч проти "myuseragent" за замовчуванням
г = reppy.fetch ('http://example.com/robots.txt ", UserAgent =' MyUserAgent / 1.0 ')
# Це буде матч проти "someotheragent 'замість
г = reppy.fetch ('http://example.com/robots.txt ", UserAgent =' MyUserAgent / 1.0 ',' userAgentString someotheragent =)
<Сильний> Шлях-відповідності
Відповідність Шлях підтримує як * і $

Особливості

  • мемоізаціі від наведених robots.txt
  • Дійсно взяті з Завершується заголовок
  • Пакетні запити
  • Настроювані користувачем засіб для вилучення файлу robots.txt
  • Автоматичне refetching обґрунтування після закінчення
  • Підтримка обходу затримки
  • Підтримка файлів Sitemap
  • Джокер відповідності

Вимоги

  • Python

Інші програми розробника Dan Lecocq

aws-trade-in
aws-trade-in

20 Feb 15

asis
asis

20 Feb 15

reppy

Коментар не знайдено
додати коментар
Включіть картинки!