リンク:
アリスブログ > 「ALISのAPI」を使用する方法まとめ > 当記事
◆ 【Python】ALISの検索データを表示してみよう!
「『ALISのAPIのドキュメント』を利用する方法」まで理解したら、ALISのAPIで色々な事ができるようになるのですが、
「日本語の送信」を直接行うとエラーが起きるというトラップがあるので、ここでは、「検索データの取得」を例にしながら、日本語の送信方法を説明していきます。
◆ 検索結果を2件取得するプログラム
import urllib.request
import urllib.parse
import json
import pprint
search_name1 = 'SEO対策' # 検索したい名前をここに入れる
search_name1 = urllib.parse.quote(search_name1)
url_name1 = 'https://alis.to/api/search/articles?query=' + search_name1 + '&limit=2'
cm_data1 = urllib.request.urlopen(url_name1)
article_box1 = json.loads(cm_data1.read().decode("utf-8"))
pprint.pprint(article_box1)
input('Enterキーで終了')
(「ALISのAPIを読み込むプログラムの説明」から、追加や修正が行われた文を太字にしています)
○ 更新されたコードの説明
import urllib.parse
今回のプログラムでは、「URLエンコード」というのを行えるようにしておきたいので、それに必要なモジュールを読み込んでおきます。
search_name1 = 'SEO対策' # 検索したい名前をここに入れる
検索したいワードを入力。
search_name1 = urllib.parse.quote(search_name1)
検索したいワードに「URLエンコード(パーセントエンコーディング)」を行います。
英数字だけで構成された検索ワードの場合は、URL内に入れても特に問題はないのですが、日本語を直接入れるとエラーが発生するので、URLエンコードされた文字に変換しておく必要があります。
url_name1 = 'https://alis.to/api/search/articles?query=' + search_name1 + '&limit=2'
「+」を用いた、str型の文字の連結です。
これによって、プログラム実行中は、
url_name1 = 'https://alis.to/api/search/articles?query=SEO%E5%AF%BE%E7%AD%96&limit=2'
に変換されます。
(「%E5%AF%BE%E7%AD%96」=「対策」をURLエンコードしたもの)
pprint.pprint(article_box1)
新着記事を獲得するプログラムでは、「article_box1['Items']」になっていましたが、検索結果のJSONデータには「['Items']の要素」が含まれていないので、「article_box1」のみになっています。
(「article_box1['Items']」の状態で実行すると、エラーが発生します)
○ 実行結果
body(記事の本文)以外の情報を獲得することができました。
◆ 「ゆうき」のツイッター