【Python】WordPress管理画面をスクレーピングして集計、Streamlit Cloudで公開する方法

この記事は約3分で読めます。
広告

WordPressでテーマCocoonを使用している場合、管理画面で記事ごとのアクセス数が表示されています。この値をスクレーピングして取得。Pythonのpandasで処理し結果をcsvファイルで出力。そのcsvファイルをStreamlit Cloudでパラメータ操作できる表やグラフで公開する手順になります。

必要な知識
Pythonの基本、ライブラリSelenium、BeatifulSoup、pandasの基本、Git、GitHubの基本

必要な環境
Pythonが動く環境、エディタ(VSCodeなど)
私の場合Windows11、PythonはAnacondaをインストールしてJupiterNotebookで開発。エディタとしてVSCode併用。

プログラム概要
WordPress管理画面をスクレーピングして集計、公開

 ↓↓↓↓↓↓ 
イチゲブログ集計結果、これを作ります!

詳細はこちらのZenn本に書きました。

以下、本の抜粋になります。

広告

WordPress管理画面

私はテーマCocoonを使っています。Cocoonしか使ったことがないので他の管理画面がどうなっているかわかりません。そのほか管理画面に関係ありそうなものとしてプラグインがありますが。私が入れているものを、こちらで紹介しています。少ないです。

注意点

  • コードを理解してから実行してください。
  • あくまで私のブログで、うまくいった方法なので、設定等の違いにより思わぬ不具合(記事の削除とか)が起きるかもしれませんので自己責任で実行してください。
  • スクレーピングをする対象の利用規約でスクレーピング禁止になっていないか確認してください。例えばYoutubeの場合は禁止になっています。Youtubeの利用規約
    youtub利用規約抜粋 3、自動化された手段(ロボット、ボットネット、スクレーパなど)を使用して本サービスにアクセスすること。
  • サーバーに負荷がかかるため十分、間を置いて必要以上のアクセスをしないようにしましょう。
  • アクセス数の制限のあるレンタルサーバーもあるのでブログで使っているレンタルサーバーにアクセスしすぎると制限されるかもしれません。
  • 管理画面にアクセスしているとはいえ同じドメインなのでロボットによる不正アクセスと認定され検索順位に影響がでるかもしれません。
  • googleアドセンスもロボットによる不正アクセスと認定され広告制限されるかもしれません。
  • JupiterNotebookで実行しユーザーIDやパスワード入力は手動ですることをおすすめします。GitHubにpublicでプッシュするとコードは公開になるので、公開するコードに重要な情報は書かないようにしましょう。

動作概要

  1. WordPressを立ち上げUserID、パスワード入力してログイン
  2. 投稿をクリック→投稿一覧の1ページ目が表示される
  3. 1ページ目スクレーピング
  4. 次のページへボタンクリック
  5. 2ページ目スクレーピング。以降最終ページまで実行。
  6. 取得したタイトル、URL、公開日、集計値(日 週 月 全)をpandasでデータフレーム化
  7. csvファイルに出力
  8. そのcsvファイルをGitHubにプッシュしてStreamlitで公開

GitHubへプッシュ(アップロード)

Streamlit cloudにデプロイ(公開)するためにはGitHubにプッシュすると自動的にStreamlit Cloudで実行、公開されるようになっています。
こちらを参照し簡単なサンプルをStreamlit cloudにデプロイしてみてください。

この記事を書いたイチゲを応援する
Vプリカでのお支払いがおすすめです。
MENTAやってます(ichige)

コメント

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