Python3メモ⑯(HTTPライブラリのRequests)

前回の正規表現の例で、Yahoo!ニュースのRSSをそのままコピペして使いましたが、通常このようなことはしません。
プログラムから直接、指定したURLにアクセスして、そのページのソースコードを取得し、それを変数に代入して使用します。

そういうことを簡単にできるライブラリが「Requests」です。

Requestsの詳しい説明は、http://requests-docs-ja.readthedocs.io/en/latest/を参照して下さい。

RequestsはPythonとは別にインストールしなければいけませんが、とても簡単です。

Requestsのインストール方法

コマンドプロンプトを起動して、

pip install requests

と入力してEnterです。

Pythonをインストールしていれば、pipと呼ばれるPythonのパッケージソフトウェアもインストールされていますので、上記コマンドが実行されます。

Requestsを使ってみる

Requestsモジュールをインポートして利用します。

ライブインホープのRSSを指定して、そのソースコードを表示しています。
結果は長いソースコードの羅列ですので割愛しますが、たったこれだけのコードで、指定したURLのソースコードを取得できます。

前回やった正規表現のfindallの例をRequestsでやってみます。

結果はブログの更新によって変わりますので割愛します。

RSSリーダーもこのような感じで作ることが可能です。

リファラやユーザーエージェント情報を追加

リファラは、指定したURLに来る前の、リンク元ページのURLです。
ユーザーエージェントは、アクセスに使ったブラウザ情報です。
これらがないと、うまくアクセス出来ない場合もありますので、追加することも出来ます。

例外処理

Requestsは、インターネットに接続するので、ネットワークやタイムアウト等のエラーが出る場合があります。
エラーが出るとプログラムが止まってしまうので、それを防ぐために例外処理は書いた方がいいです。
例外処理は、try~exceptを使います。
下の例は、Accept-Language(ブラウザの言語指定)やtimeout(秒で指定)も追加しています。

except Exception as e ~は、すべての例外の補足を試みていますが、どのようなエラーなのかは具体的に書いた方がいいみたいです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする