【Python】標準ウェブライブラリurllib.requestの使い方

Pythonの応用
スポンサーリンク

初心者の独学でのプログラミング学習はとてもツライ…

プログラミングをマスターしたい!

今のIT業界はプログラミングエンジニアが不足していると言われています。
高収入の職業とも言われる分野もありますし、AI、機械学習、ディープラーニング、IOTといった注目される分野が目白押しです。

でも、いざ初心者がプログラミングをマスターしようとすると…

  • 本を読んだりネットの記事で自力で勉強しているけど限界を感じる
  • プログラミングスクールに定期的に通うのは面倒だ
  • 地方に住んでると家の近くにプログラミングスクールなんてない
  • どのプログラミング言語を学べばいいのか悩む
  • 実際の就職や転職にプログラミングが活かせるのか心配だ

など、プログラミングを自分で勉強しようとすると悩みが尽きません。

プログラミングに詳しい友人に教えてもらおうと思っても、そんな友人なんて滅多にいません。いたとしても細かく教えてくれるほど時間に余裕がある人はいないでしょう。

そんな独学でプログラミングをマスターするのに限界を感じてる方に、オンラインプログラミングスクールをがおすすめです。

おすすめのオンラインスクールはこちら

ウェブページにアクセスしてステータス、データを手に入れるための定義をRESTと呼んだりします。クライアントが行いたい処理をサーバーに伝えるHTTPメソッドとして次のようなものがあります。

  • HEAD データそのものではなくデータの情報を取得
  • GET データの取得
  • POST データの新規追加
  • PUT データの更新
  • DELETE データの削除

ここではPythonの標準ウェブライブラリであるurllibを使って、これらのHTTPメソッド操作してみます。

HTTP通信のテストをするのにテスト用サーバーを用意するのはここでは手間がかかるので、 https://httpbin.org/ というテストサービスのサイトをここでは利用します。

最初にurllibのモジュールをインポートしておきましょう。

では、urllib.requestの使い方を見ていきましょう。

スポンサーリンク

HTTPヘッダー情報を取得

まずはHTTPヘッダー情報を取得するコードを書いてみます。

urlを指定し、urlopen()で開いています。これをstatusを使ってHTTPステータスコードを取得します。通信が上手くいってるはずならここで200が出力されるはずです。

見やすいように’-‘を使って区切り線を入れています。

ヘッダー情報はgetheaders()で得られます。この情報をキーと値に分けて全ての情報を出力しています。

これを実行するとこうなります。(ファイル名をhttpbin.pyにしてAtomで実行しています)

サーバーが無事応答しているので200が出力されています。ヘッダー情報もご覧の通りです。

スポンサーリンク

GET

次はGETをやってみましょう。https://httpbin.orgのトップページを見ると、返してくれるリクエスト形式の一覧が見られるのでそれに合わせてやってみましょう。

先ほどとの違いはurlにgetを繋げている点です。アクセスして得られたデータをread()で読み込んでいますが、このままだとバイトの形で出力されるのでdecode()を使ってutf-8に変換したものを出力しています。

これを実行するとこうなります。

JSON形式で値が返っています。

このGETにパラメーターを渡した場合をやってみましょう。

data = {‘k1’: ‘v1’, ‘k2’: ‘v2′} と言う辞書型のパラメーターを使ってコードを書いてみます。

getの時にパラメーターを使うには、URLに’?’を繋げてパラメーターを渡します。ここでは辞書型のパラーメーターを渡すのですが、parse.urlencode()で構文を解析してエンコードしたものを繋げています。これを上と同様に出力します。

パラメーターが反映された形で出力されています。

スポンサーリンク

POST

次はPOSTをやってみましょう。

POSTはデータを新規登録する通信ですが、GETのような形でパラメーターをURLに繋げていた場合は、そのURLが他の人に見られてしまうと問題が起こる場合があります。例えばパスワードなどです。

ですので、POSTではURLそのものを渡すのではなくPOSTデータの入ったオブジェクトを渡す形になります。

同様のパラメーターを使ってPOSTのコードを書いて見ます。

ここではjsonモジュールもインポートします。json.dumps()でパラーメータのデータを文字列として整形し、utf-8でエンコードします。これをrequest.Request()にpostのURLと共にパラメーターとして渡し、methodを’POST’にします。これをurlopen()で開き、読み込んだものをutf-8にデコードしてJSON形式で出力します。

実行するとこうなります。

パラメーターがpostで送られているのがわかります。

スポンサーリンク

PUT

次はPUTをやってみましょう。これはもうほぼ同じで、先ほどのpostをputに変えるだけです。

URLの部分をputにし、methodをPUTにしています。今までと同じように開いてもいいのですが、ここではwithステートメントを使ってみました。

実行するとこうなります。

putで処理した情報が得られました。

スポンサーリンク

DELETE

最後にDELETEをやってみましょう。これも上のコードの該当部分をdeleteに変えるだけです。

URLの部分をdeleteにし、methodをDELETEにしています。他は同じです。

実行します。

deleteの情報が得られました。

スポンサーリンク

まとめ

ここではPythonのurllib.requestを使って、HTTP通信のテストをやってみました。

クライアントが行いたい処理をサーバーに伝えるHTTPメソッドには、GET、POST、PUT、DELETEがあります。

GETはデータの取得、POSTはデータの新規追加、PUTはデータの更新、DELETEはデータの削除です。やり方は上でやったような扱い方を知っておきましょう。

HTTP通信のテストにはサーバーを自分で用意しなくても、https://httpbin.orgなどのテストサービスサイトがあります。

自宅学習はオンラインプログラミングスクールを活用!

自宅学習にはオンラインプログラミングスクールがおすすめ!

オンラインプログラミングスクールは独学でプログラミングを学習する時のデメリットを解消する仕組みが備わっています。

気になるところは…

学習がオンラインで完結するのはもちろんですが、独学ではできない質問サポートがあるかどうか。わからないことを現役のエンジニアが質問に答えてくれるといいですよね。

受講者個人に担当のメンターがつき、マンツーマンで学習の相談に乗ってくれることも必要で、ITエンジニアの世界についても伺えたりもすると幅が広がります。

オンライン面談だけでなく、チャット機能を使って気軽に質問を投げかけることができることも大切です。

また、オリジナルプロダクトの開発とサポートがコースの中に組み込まれていて、独学ではなかなか難しい実践的なスキルの習得にもつなげたい。

プログラミングをマスターした後の実際の仕事につながる転職サポートでがあると、ITエンジニアの世界に飛び込むのに不安が解消されます。

そんな豊富なメニューが揃っているおすすめのオンラインプログラミングスクールがこちらにあります。

おすすめのオンラインプログラミングスクールはこちら

TechAcademyはおすすめのオンラインプログラミングスクール!

オンラインのプログラミングスクールでは、テックアカデミーの充実度が目を見張ります。

オンラインで受講が完結するので、自宅学習でプログラミングをマスターしたい人にはテックアカデミーがおすすめです。

メンター制度も現役のプロが対応してくれます。大学生などが対応しているスクールに比べて本気度と専門性が違います。メンター制度の無いスクールもありますし、担当では無いメンターが対応するスクールもあったりするので、相談の質が違いますね。

チャットサポートもあるので、それが無いスクールに比べて相談の気軽さの違いがあります。

プロダクト開発のサポートで実践力が養われるだけでなく、どの講座を利用しても転職サポートが受けられるのはありがたい。

用意されているコースも、初心者向けのプログラミングコースから、Python、Java、PHP、iPhoneアプリ、AndroidといったITエンジニアのベースとなる主要な言語だけでなく、AI、データサイエンス、ブロックチェーン、webアプリケーションと行った実践的なコースまで用意しています。

他にも、webデザインやUI/UXデザイン、動画編集、webディレクションやwebマーケティングといったプログラミング以外での役立つコースまであります。

このようなたくさんの選択肢から自分にあったコースを選ぶことがでるのがテックアカデミーです。

コースの期間も短期間でマスターしたり、長期の受講でじっくり取り組むコースを選ぶこともできます。

複数講座のセットコースを利用することで大幅な割引が受けらるので、お得に受講することもできます。

無料体験もありますので、プログラミング学習でオンラインスクールを考えている人はTechAcademyをぜひ利用してみてください。

テックアカデミーの公式サイトはこちら

Pythonの応用
スポンサーリンク
CodeGraffitiをフォローする

とにかく進め!Pythonプログラミング入門 〜 コードグラフィティ
タイトルとURLをコピーしました