ウェブノウハウ

WEB KNOWHOW

Pythonでスクレイピング → WordPressサイトに掲載

5. 【WordPress側】API登録,WP REST API のIPアドレス制限,スクレイピングの検索キーワード管理

前回まででPython側の環境ができましたので、次はWordPress側の準備をします。

WP REST APIの登録

WordPressサイト側で WP REST API の認証用パスワードを発行します。
発行は次の手順で簡単にWordPressの管理画面からできます。

  1. WP REST APIでPOSTする用のユーザーを作成します。作成せず、デフォルトの管理者ユーザーでも構いません。
    次に、[ユーザー]メニューから当該ユーザーの編集画面を開きます。
    一番下に「アプリケーションパスワード」というのがありますので、「新しいアプリケーションパスワード名」を登録します。
    名称は何でも良いです。ここでは「テストアプリ」としておきます。

     
  2. すると、「テストアプリ」のパスワードが表示されてきますので、このパスワードを必ずどこかにコピーして保管しておきます。
    API接続するときに使用します。

WP REST API の登録はこれだけで完了です。
 

WP REST API で POSTできるサーバーのIPアドレスを限定する

上の手順で作成したAPIのパスワードを外部に漏洩しなければ、第三者から投稿されることはありません。
しかし漏洩すると結構大変なことになります。
そこで、念には念を入れて、WordPressにPOSTできるサーバーをスクレイピングするサーバーだけに限定しておきましょう。

.htaccess に次の記述を追記します。

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_METHOD} POST
  # API接続を受け付けるIPアドレスを書く
  RewriteCond %{REMOTE_ADDR} !^XXX\.XXX\.XXX\.XXX$
  RewriteRule ^wp-json/wp/* - [R=403,L]
</IfModule>

これで安全。WP REST APIの準備は完了です。
周辺の準備は完了しました。ここからはいよいよ具体的な中身の作りこみに入っていきます。
 

スクレイピングするときに検索に使うキーワードを管理する

ここで、第1回で確認したシステムの全体像をおさらいしておきましょう。
Pythonでスクレイピングした情報をWordPressサイトに投稿するシステムの全体像

※この図上の「情報掲載元サイト」のところは具体的にはこのページになります。
https://100webdesign.jp/services/dev_prj/
 
この図をテキストで説明するとこういうことです。
①WordPressサイトの投稿のカテゴリを取得し、②情報掲載元サイトの検索窓にそのカテゴリ名を放り込んで結果を取得し、③結果のタイトルとタグ情報をWordPressサイトに渡し、④WordPressサイトで表示する
 
つまりWordPressサイト側では、検索に使うキーワードとなる「カテゴリー」と、取得した情報の“タグ情報”を受け取る「タグ」を、あらかじめ用意しておく必要があります。
ということで、[投稿]メニューの[カテゴリー]と[タグ]に、実際にキーワードとタグを登録しておきましょう。
なおこのとき、「一覧を出す」用に最上位に1つカテゴリーを作り、その下層に検索キーワードとなるカテゴリーを登録しましょう。
 
例)
カテゴリー
- 100ウェブの制作・開発案件紹介一覧
-- サイト制作
-- SEO
-- チャット

タグ
- WordPress
- 予約
- Webデザイン
- 検索
 
こんな感じです。

【100ウェブ新着情報メルマガ】

WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!