Pythonでrequestsを使用しWordPress APIから最新の投稿を取得する

Pythonでrequestsを使用しWordPress APIから最新の投稿を取得してみます。

全てのWordPressを利用しているWebサイトには、さまざまな種類の情報を収集するためのJSON APIが存在していますので、このAPIを利用し、最新の投稿を取得します。

なお、今回はrequestsモジュールを使用しますので、Pythonに事前にインストールしておく必要があります。

※注意※このアプローチを使用し、悪用しないでください。Webスクレイピングは通常は問題ありませんが、誰かのWebサーバーにリクエストをスパム送信しないでください。

■Python

Google Colaboratory(Google Colab),Python3.7.10

■requestsを使用しWordPress APIから最新の投稿を取得する

では、早速requestsを使用しWordPress APIから最新の投稿を取得するスクリプトを書いていきます。

■コード

import requests
import json

req = requests.get('https://***.***(WordPressサイト)/wp-json/wp/v2/posts')

data = json.loads(req.content)

enc = json.dumps(data, indent=2, ensure_ascii=False)

print(enc)

importでrequestsモジュールとjsonモジュールを呼び出します。jsonモジュールは、Python標準ライブラリ。その後、reqという変数を定義し、その中でrequests.get()関数を用います。 関数の括弧内には、引数,パラメータとして、Webサイトのデータを取得するために、URLを渡します。今回は当サイト(https://laboratory.kazuuu.net/)を指定します。この際にURLの末尾に「/wp-json/wp/v2/posts」を付けることで、最新の投稿を取得することができます。

取得後、data変数を定義し、json.loads()関数を用い、括弧内に引数,パラメータとしてreq.content(取得したデータ(コンテンツ))を渡し、JSON文字列を辞書型に変換します。

変換後、enc変数を定義し、json.dumps()関数を用い、括弧内に引数,パラメータとしてdata変数を渡し、辞書をJSON文字列として整形して出力します。この際に、第2引数,パラメータで、インデント幅を「2」とします。さらに第3引数,パラメータで「ensure_ascii=False」とし、Unicodeエスケープされず、日本語の文字を出力させるようにします。この設定を行わないと、Unicode文字列が出力されてしまい、文字化けが発生してしまうことを防ぐ。

整形後、print()関数でenc変数内の情報を出力します。

■実行・検証

スクリプトを作成後、このスクリプトを実行してみます。

実行してみると、requestsモジュールを用いたことで、requestsを使用しWordPress APIから最新の投稿を取得し、JSON形式で投稿(コンテンツ)を出力させることができました。

コメント

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