Kivy

KivyでURLリクエストを送る|Pythonデスクトップアプリ開発

今回はKivyでURLRequestを送る方法について。
ポイントだけまとめておきます。

ゴールはこちら。
KivyでWEBページにアクセスしてHTMLデータを取得しています。

もくじ

  1. ソースコード
  2. UrlRecestオブジェクトの引数
  3. まとめ
  4. 参考

ソースコード

    def on_enter(self):
        req = UrlRequest('https://yukituna.com/', self.ok)
    
    def ok(self, req, results):
        print(req, results)

今回はウィジェットについては割愛して、処理のみ見ていきます。

上のコードはどちらもクラスメソッドとして作ってますので、このまま貼り付けても動作しません。
ご容赦ください。

まず1つ目の関数を見ていきます。
def on_enter(self):
req = UrlRequest(‘https://yukituna.com/’, self.ok)

KivyのUrlRquestオブジェクトのインスタンスを変数reqに格納しています。
このUrlRequestオブジェクトの引数がポイントになるので、次の項で紹介します。

次に、2つ目の関数です。
def ok(self, req, results):
print(req, results)

関数の呼び出し時に引数を指定していないので混乱しましたが、resultには、URLRequestインスタンスの戻り値的な形で、HTMLデータが格納されています。
こちらについても下の項で紹介します。

UrlRecestオブジェクトの引数

とりあえずドキュメントを参照しました。
UrlRequest

Kivyは日本語のソースが少なく、普及の妨げの一因になってるらしいですね。
やっぱり英語能力って、プログラミングを学ぶ上では非常に重要だと感じますねー。

ドキュメントより、リクエスト構築のための構文です。

    from kivy.network.urlrequest import UrlRequest
    req = UrlRequest(url, on_success, on_redirect, on_failure, on_error,
                    on_progress, req_body, req_headers, chunk_size,
                    timeout, method, decode, debug, file_path, ca_file,
                    verify)

引数多いですね…。
今回は基本的な使い方しかしないですので、最低限のurlとon_successのみ使用しています。
必須の引数はurlのみです。

urlは言わずもがな、アクセス先のURLを入れます。
デフォルトではGETメソッドでアクセスが行われるようです。

on_successは、URLへのアクセスが成功した際の処理を渡しておきます。
インスタンス生成時に処理も代入しておくのですね。

このon_successはコールバック関数で、URLにアクセスした結果は、resultsパラメータとして渡されます。
これが、先程のok(self, req, results)というメソッドの正体です。

使ってみると簡単ですね。

まとめ

KivyでGUIアプリケーションの開発にチャレンジしてからはや3日。
少しずつ実装力がついてきたように感じます。

あとは何か面白いアイデアさえ閃けば、そのアプリケーション開発に没頭できるのになと思います。

参考

Python Kivyの使い方④ ~Androidでの実行~

UrlRequest