3日坊主にならなくて済みそうです。
昨日はURLにパラメータを付けてWEBサイトから情報を取ってみましたが、今日は同じ事をコマンドラインから行います。
この本に沿って進めています
URLにパラメータを付けて情報を取ってみる
昨日と同様、パラメータを付けてリクエストするコードですが、本のコードが面白そうなので、そのまま書いてみます。
百人一首を検索するAPIのエントリーポイント。
パラメータは2つ
パラメータ | 意味 |
fmt | 検索結果の形式をini|xml|jsonで指定 |
key | 検索キーワードを指定 |
#!use/bin/env python3
#ライブラリ読み込み
import sys
import urllib.request as req
import urllib.parse as parse
#コマンドライン引数を得る
if len(sys.argv) <= 1:
print("USAGE: hyakunin.py(keyword)")
sys.exit()
keyword = sys.argv[1]
#パラメータをURLエンコードする
API = "https://*************************/get.php"
query = {
"fmt": "ini",
"key": keyword
}
prams = parse.urlencode(query)
#リクエスト用のURLを生成
url = API + "?" + params
print("url=",url)
#ダウンロード
with req.urlopen(url) as r:
b = r.read()
data = b.decode("utf-8")
print(data)
はい、実行!
どん!

あれ?違う。
2つ分かっているのは最初の分のurlの最後が、昨日やったznの郵便番号がパラメータになってるのと、もう1つはコマンドラインから実行していないこと。
jupyterからとりあえず実行したので、仕方がない。
郵便番号は何だろう?と思ってさかのぼっていくとkeywordのところで入ってないからか?と予想。
コマンドラインでつまずいた
本の中にはコマンドプロンプトで実行する方法は記載されていなかった。
ネットでググる。
見たサイトが古かったのか、コマンドプロンプトからpy.exeを起動と。しかし実行できず。
調べた結果、私のPCではanaconda3の中のpython.exeと同じだろうということになった。
C:Usersuser1Anaconda3>python.exe
hyakunin.pyはテキストファイルに書いて.pyで保存すると良いのか?
初心者にとっては、最初の壁になるかも知れない。
解決
結局、python.exeからhyakunin.pyを指定して実行した。
python.exeとhyakunin.pyは同じフォルダに入れてあげた。

同じフォルダに
それでもって、プロンプトから実行

でた!
構文は何とかなったが、実行の仕方で苦労するとは思わなかった。
基本が出来ていないので、スクールもありかもしれない。
