【挑戦】Python urllibを使ってみる【2日目】

昨日に引き続きPython学習2日目です。

無理すると続かなさそうなのでのんびりと行きましょう。

昨日のページ。

もし、のんびりでは物足りない方は、python専用のプログラミングスクールもありますので、貼っておきます。
スポンサーリンク

昨日の課題から

ライブラリ.モジュール.関数.メソッド

昨日は気にならなかったけど、オブジェクトも必要らしい。

モジュール  : 便利なオブジェクトをまとめたファイル
 オブジェクト : 便利な関数の塊
  メソッド   : 便利な関数

と言うことは、だ。

「モジュール.関数.メソッド」は間違いで、「モジュール.オブジェクト.メソッド」が正しいかも知れない。

ライブラリ、どこ行った。

with

with構文は、例えば「ファイルをOpenした後、Closeする」という処理のCloseを省略するような構文でした。

with open(savename,mode=”wb”) as f:
f.write(mem)
print(“保存しました”)

これをwithなしで書くと

f = open(“sample.txt”, “wb”)
print(f.read())
f.close()

こんな感じになるかな。

as f:

asはwithの相方でした。

f:はf=と同じ感じなので、「with 〇〇 as」ってセットで覚えればOKのようです。

この本に沿って進めています

では、続きをやりましょう

WEBからデータを取得する方法

本の中には、練習専用のWEBサイトの記載がありますが、ここでは伏せておきますね。

クライアントの接続情報を表示するAPIです。

#IP確認APIへアクセスして結果を表示する
#モジュールを取り込む
import urllib.request

#データ取得
url="https://***********.com/ip/ini"
res=urllib.request.urlopen(url)
data=res.read()

#バイナリーを文字列に変換
text=data.decode("utf-8")
print(text)
クライアントの接続情報を表示するAPI

何か返ってきました。

これがなにの役に立つかわからないけど、とりあえず成功です。

コードの前半、データの取得までは昨日と同じですね。

バイナリーに文字列を変換は初めてです。

read()メソッドで読みだすとバイナリーデータになるので、decore()メソッドで文字列に変換しています。utf-8は文字コードだと思いますがこれで文字列になるんですね。

試しに#バイナリーを文字列に変換の部分を行わず、そのまま出してみると。

バイナリーデータのままの場合

文字列にするのは必須ですね。

このブログの昨日のpython独学1日目のURLにしてみました。

サイトのhtmlの部分がすべて表示された感じです。

まとめ

urllibを使うと、簡単にサイトの画像やHTML、接続情報などを取ることが出来る。

タグを指定できれば、ピンポイントでデータが取れるということですね。

タイトルとURLをコピーしました