reppy

ソフトウェアのスクリーンショット:
reppy
ソフトウェアの詳細:
バージョン: 0.1.0
日付のアップロード: 11 May 15
開発者: Dan Lecocq
ライセンス: 無料
人気: 5

Rating: nan/5 (Total Votes: 0)

reppyが発生し、他のrobots.txtパーサーでメモ化のサポートの欠如、および組み込みrobotparserでクロール遅延やサイトマップのサポート不足から始まりました。
マッチング
このパッケージは1996、RFC、ならびにワイルドカードマッチング、クロール·ディレイ、サイトマップなどの追加一般的に実装された機能をサポートしています。許可と許可しないマッチングを変える方法があります。一つのアプローチは、最長一致を使用することです。もう一つは、最も具体的なを使用することです。これに関連して定義することはほとんど困難である用語 - このパッケージには、最長で指令、それは最も特異的である一つだということで仮定に従うことを選択します。
利用
reppyを使用する最も簡単な方法は、URLまたはURLが/許可されているされている場合だけで依頼することです:
輸入reppy
#これは、暗黙的にexample.comのrobot.txtをフェッチ
reppy.allowed( 'http://example.com/howdy')
#=>真
#今、それは(Expiration` `で続きを読む)それが期限切れになる必要があるときに基づいてキャッシュされています
reppy.allowed( 'http://example.com/hello')
#=>真
#これは、バッチクエリをサポート
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オブジェクトを作成します
R = reppy.fetch( 'http://example.com/robots.txt')
しかし、あなたは同じように簡単にあなたが取り込まれた文字列を解析することができます。
インポートurllib2の
= urllib2.urlopen( 'http://example.com/robots.txt').readデータ()
R = reppy.parse(データ)
期限切れ
reppyはあなたのためにrobots.txtをフェッチ持つの主な利点は、そのデータの有効期限が切れた後に、自動的に再フェッチすることができるということです。普通のようにそれを使用し続ける - あなたはそれについて考える必要はありませんので、それは、あなたに対して完全に透過的です。あなたが好む場合、またはあなた自身の生存時間、優先設定できます。
輸入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()
#=>真
クエリ
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(['/'、 '/ハロー'、 '/ハウディ'])
クロール·ディレイとサイトマップ
Reppyは、非RFCを公開したが、広く使用されているクロールディレイ及びサイトマップは属性。クロール遅延は、ユーザーごとのエージェントベースで考えられているが、サイトマップは、グローバルと見なされます。それらが指定されていない場合は、クロール遅延はNoneですし、サイトマップは空のリストです。たとえば、これは私のrobots.txtがある場合:
ユーザーエージェント:*
クロール遅延:1
サイトマップ:http://example.com/sitemap.xml
サイトマップ:http://example.com/sitemap2.xml
これらはアクセスできます。
Fとしてファイル( 'myrobots.txt'、 'R')と:
  R = reppy.parse(f.read())
r.sitemaps
#=> ['http://example.com/sitemap.xml'、 'http://example.com/sitemap2.xml']
r.crawlDelay
#=> 1
ユーザーエージェントのマッチング
あなたはrobots.txtのをフェッチするためにあなたが選んだのユーザーエージェントを提供することができますし、我々は一致ユーザーエージェント文字列は、最初/前に表示されるものにデフォルト設定されています。たとえば、「MyCrawler / 1.0」などのユーザーエージェントを提供する場合、我々はユーザエージェントに対して一致する文字列として「MyCrawler 'を使用します。比較は大文字と小文字が区別され、我々はユーザエージェントにワイルドカードをサポートしていません。このデフォルトは、あなたに合っていない場合は、代替手段を提供することができます。
#これは、デフォルトで「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')
パスマッチング
パスマッチングの両方をサポート*と$

この特長:フェッチのrobots.txtの

このメモ化
から採取された有効期限は、Expiresヘッダ
バッチクエリ
robots.txtのを取得するための設定可能なユーザエージェント
有効期限に基づか自動再フェッチ
クロール遅延のサポート
サイトマップのサポート
ワイルドカードの一致

この要件:

このパイソン

開発者の他のソフトウェア Dan Lecocq

aws-trade-in
aws-trade-in

20 Feb 15

asis
asis

20 Feb 15

へのコメント reppy

コメントが見つかりません
コメントを追加
画像をオンにする!