reppy

Software screenshot:
reppy
Rincian Software:
Versi: 0.1.0
Tanggal Upload: 11 May 15
Pengembang: Dan Lecocq
Lisensi: Gratis
Popularitas: 5

Rating: nan/5 (Total Votes: 0)

reppy mulai dari kurangnya dukungan memoization di parser robots.txt lain yang dihadapi, dan kurangnya dukungan untuk Crawl-delay dan Sitemap di built-in robotparser.
Pencocokan
Paket ini mendukung 1996 RFC, serta tambahan fitur yang umum-dilaksanakan, seperti pencocokan wildcard, merangkak-delay, dan peta situs. Ada berbagai pendekatan untuk pencocokan Izinkan dan Larang. Salah satu pendekatan adalah dengan menggunakan pertandingan terpanjang. Lain adalah dengan menggunakan yang paling spesifik. Paket ini memilih untuk mengikuti arahan yang terpanjang, asumsi adalah bahwa itu adalah salah satu yang paling spesifik - sebuah istilah yang agak sulit untuk menentukan dalam konteks ini.

Penggunaan

Cara termudah untuk menggunakan reppy adalah untuk hanya meminta jika url atau url yang / diperbolehkan:
impor reppy
# Ini secara implisit menjemput robot.txt example.com dunia
reppy.allowed ('http://example.com/howdy')
# => Benar
# Sekarang, itu cache berdasarkan ketika harus berakhir (baca lebih lanjut di `Expiration`)
reppy.allowed ('http://example.com/hello')
# => Benar
# Ini juga mendukung query bets
reppy.allowed (['http://example.com/allowed1', 'http://example.com/allowed2', 'http://example.com/disallowed'])
# => ['Http://example.com/allowed1', 'http://example.com/allowed2']
# Query Batch bahkan didukung accross beberapa domain (meskipun fetch tidak dilakukan secara paralel)
reppy.allowed (['http://a.com/allowed', 'http://b.com/allowed', 'http://b.com/disallowed'])
# => ['Http://a.com/allowed', 'http://b.com/allowed']
Ini cukup mudah digunakan. Perilaku default adalah untuk mengambil untuk Anda dengan urllib2
impor reppy
# Membuat objek reppy terkait dengan domain tertentu
r = reppy.fetch ('http://example.com/robots.txt')
tetapi Anda dapat dengan mudah mengurai string yang diambil.
impor urllib2
Data = urllib2.urlopen ('http://example.com/robots.txt') .read ()
r = reppy.parse (data)
Kadaluarsa
Keuntungan utama memiliki reppy mengambil robots.txt untuk Anda adalah bahwa secara otomatis dapat refetch setelah data telah berakhir. Ini benar-benar transparan kepada Anda, sehingga Anda bahkan tidak perlu berpikir tentang hal itu - hanya tetap menggunakannya seperti biasa. Atau, jika Anda lebih memilih, Anda dapat mengatur waktu-untuk-hidup Anda sendiri, yang diutamakan:
impor reppy
r = reppy.fetch ('http://example.com/robots.txt')
r.ttl
# => 10800 (Berapa lama hidup?)
r.expired ()
# => False (Apakah itu berakhir?)
r.remaining ()
# => 10798 (Berapa lama sampai habis masa berlakunya)
r = reppy.fetch ('http://example.com/robots.txt', TTL = 1)
# Tunggu 2 detik
r.expired ()
# => Benar
Query
Reppy mencoba untuk melacak host sehingga Anda tidak perlu. Hal ini dilakukan secara otomatis ketika Anda menggunakan mengambil, atau anda dapat memberikan url Anda diambil dari dengan parse. Melakukan hal itu memungkinkan Anda untuk memberikan hanya jalan ketika query. Jika tidak, Anda harus memberikan seluruh url:
# Ini bisa dilakukan
r = reppy.fetch ('http://example.com/robots.txt')
r.allowed ('/')
r.allowed (['/ halo', '/ howdy'])
# Dan begitu ini
Data = urllib2.urlopen ('http://example.com/robots.txt') .read ()
r = reppy.parse (data, url = 'http: //example.com/robots.txt')
r.allowed (['/', '/ halo', '/ howdy'])
# Namun, kita tidak secara implisit tahu mana domain ini dari
reppy.allowed (['/', '/ halo', '/ howdy'])
Crawl-Delay dan Peta Situs
Reppy juga menyebabkan non-RFC, tapi banyak digunakan Crawl-Delay dan Peta Situs atribut. Merangkak penundaan dianggap secara agent per-user, tetapi Sitemaps dianggap global. Jika mereka tidak ditentukan, keterlambatan merangkak adalah None, dan peta situs adalah daftar kosong. Misalnya, jika ini adalah robots.txt saya:
User-agent: *
Crawl-delay: 1
Sitemap: http://example.com/sitemap.xml
Sitemap: http://example.com/sitemap2.xml
Maka ini dapat diakses:
dengan berkas ('myrobots.txt', 'r') sebagai f:
& Nbsp; r = reppy.parse (f.read ())
r.sitemaps
# => ['Http://example.com/sitemap.xml', 'http://example.com/sitemap2.xml']
r.crawlDelay
# => 1
User-Agent Matching
Anda dapat memberikan agen pengguna yang Anda pilih untuk mengambil robots.txt, dan kemudian string agen pengguna kami cocok adalah gagal untuk apa muncul sebelum / pertama. Misalnya, jika Anda memberikan user agent sebagai 'MyCrawler / 1.0', maka kita akan menggunakan 'MyCrawler' sebagai string untuk pertandingan melawan User-agent. Perbandingan adalah case-sensitive, dan kami tidak mendukung wildcard di User-Agent. Jika default tidak sesuai dengan Anda, Anda dapat memberikan alternatif:
# Ini akan cocok melawan 'myuseragent' secara default
r = reppy.fetch ('http://example.com/robots.txt', useragent = 'MyUserAgent / 1.0')
# Ini akan cocok melawan 'someotheragent' bukan
r = reppy.fetch ('http://example.com/robots.txt', useragent = 'MyUserAgent / 1.0', userAgentString = 'someotheragent')
Jalur-Matching
Jalan pencocokan mendukung * dan $

Fitur :

  • memoisasi dari robots.txt diambil
  • Kadaluarsa diambil dari Expires header
  • pertanyaan Batch
  • user agent dikonfigurasi untuk mengambil robots.txt
  • otomatis refetching mendasarkan pada berakhirnya
  • Dukungan untuk Crawl-delay
  • Dukungan untuk Sitemaps
  • pencocokan Wildcard

Persyaratan :

  • Python

Perangkat lunak lain dari pengembang Dan Lecocq

asis
asis

20 Feb 15

aws-trade-in
aws-trade-in

20 Feb 15

Komentar untuk reppy

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!