urljr 1.0.1
簡単そうだったのでチョイス(´・ω・`)
もちろん全機能網羅なんてありえません。
名前は「ゆーあーるえるじゅにあ」じゃなくて、もしかして
JanRain's URL Utilities
って書いてあるので作者さんの名前だったり?
ちなみにパッケージのページはこちら。
URI(URL)関連のモジュールなようですが
- URIの妥当性チェック
- 指定したURLをとってくる
ということができるようです。かなり斜め読みですが。
urljr.urinorm
正しいURLか?ってーやつですね。内部では正規表現で評価してくれます。
たとえば
>>> import urljr.urinorm as urinorm
>>> urinorm.urinorm('http;//www.example.com/index.html')
urinorm.のurinorm関数にURIを与えると(意図的にコロンをセミコロンにしています。)
Traceback (most recent call last):
File "", line 1, in
File "C:\Python25\Lib\site-packages\urljr\urinorm.py", line 138, in urinorm
raise ValueError('No scheme specified')
ValueError: No scheme specified
こんな感じにエラーとなった原因をつけたValueErrorをraiseしてくれます。使うときはtry〜exceptで使いましょうってことですね。
また、
>>> urinorm.urinorm('http://www.example.com/dir/../dir/index.html')
'http://www.example.com/dir/index.html'
というようなURIを指定した場合、無駄な部分をそぎ落としてリターンしてくれます。
認証用のIDを含んだURIもちゃんと判別してくれます。
>>> urinorm.urinorm('http://user@www.example.com/dir/../dir/index.html')
'http://user@www.example.com/dir/index.html'
もちろんエンコードされたURLでも、クエリパラメータがついていてもOK。
urljr.fetchers
URIで指定したページをとってきてくれます。
import urljr.fetchers as fetchers
res = fetchers.fetch('http://www.example.com/')
という感じで引数で指定したURIを取得しにいってくれます。
リターンされたresはurljr.fetchers.HTTPResponseクラスのインスタンスで、
- body str型、受信したレスポンスボディ
- status str型、httpステータスコード
- headers Webサーバから受信したレスポンスヘッダをディクショナリ型で表現
- final_url str型、リダイレクトされた場合は最後にアクセスすることになったURI
というプロパティを持ってます。
ちなみにデフォルトではページの取得にはurllib2を利用する模様。urllib2使ったこと無いんですが、直接使うよりは楽なのかな?