urljr 1.0.1

簡単そうだったのでチョイス(´・ω・`)
もちろん全機能網羅なんてありえません。

名前は「ゆーあーるえるじゅにあ」じゃなくて、もしかして

JanRain's URL Utilities

って書いてあるので作者さんの名前だったり?


ちなみにパッケージのページはこちら。

http://pypi.python.org/pypi/python-urljr/1.0.1

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使ったこと無いんですが、直接使うよりは楽なのかな?