初心者向け!Pythonで推しのSNS出演情報をスクレイピングする方法

Tips
この記事は約9分で読めます。

プログラミングなんて触ったことがないけど、推しの最新出演情報は誰よりも早くキャッチしたい!そう思ったことはありませんか?でも、毎日SNSをチェックするのは大変ですよね…。そんなときこそ、Pythonの出番です。プログラミング初心者でもできるスクレイピングという方法を使えば、推しの出演情報を自動で集めることができますよ。

この記事では、プログラミング初心者にもわかるように、PythonとBeautifulSoupというライブラリを使った簡単なスクレイピングのやり方を解説します。新社会人の方でも気軽に読めるように、カジュアルなトーンで進めていきますね。

スポンサーリンク

Pythonで推しの出演情報を自動収集する方法

Pythonとは?

Python(パイソン)は、世界中で人気のプログラミング言語です。シンプルで読みやすい文法が特徴で、初心者にとっても学びやすいプログラミング言語です​。例えばデータ分析やAI開発、Web制作など幅広い分野で使われており、もちろん今回のようなWebスクレイピングにもピッタリです。難しい記号が少なく、英語の文章に近い感覚で書けるので、プログラミング未経験でも取り組みやすいんですよ。

スクレイピングとは?

スクレイピングとは、プログラムを使ってWebサイトから情報を自動的に抽出することです​。簡単に言うと、あなたの代わりにインターネット上の情報を集めてきてくれる「ネットの収集マン」のようなものですね。例えば、毎日手作業でSNSを眺めて推しの出演情報を探す代わりに、スクレイピングのプログラムが自動でページをチェックし、必要なデータだけを抜き出してくれます。手動でコピペするのに比べて、スクレイピングを使えば素早く正確に情報を集められるのがメリットです。

BeautifulSoupを使ってSNSから情報を取得する仕組み

BeautifulSoup(ビューティフルスープ)は、PythonでHTMLなどの構造化されたデータから必要な情報を抜き出すための便利なライブラリです​。具体的には、次のような流れで推しのSNS情報を取得できます。

  1. SNSページのHTMLを取得: まずPythonからインターネット上のSNSページ(例えば推しのTwitterのページ)にアクセスし、そのページのHTMLデータを取得します。これには後述するrequestsというライブラリを使います。
  2. HTMLを解析: 取得した生のHTMLはただの文字列なので、そのままでは扱いづらいです。そこでBeautifulSoupを使ってHTMLを解析し、ツリー構造(木構造)として扱えるようにします。簡単に言えば、BeautifulSoupにHTMLを読み込ませて「スープ」を作るイメージです。
  3. 必要な情報を抽出: HTMLの構造が解析できたら、そこから欲しい情報が含まれる部分だけを探します。例えば「出演情報」が書かれているテキストを探したり、投稿一つひとつの要素(タグ)を順番に取り出したりできます。BeautifulSoupを使うと、特定のタグ名やクラス名を指定して該当する要素だけを抜き出すことが簡単にできます。
  4. 情報の取得: 抜き出した要素からテキスト(文章)を取り出せば、推しの出演情報が手に入ります。あとはそのテキストを表示したり、保存したりするだけです。

このように、PythonとBeautifulSoupを使えば、Webサイトの情報を自動的に集めて加工することができるのです。次は、実際にその手順を具体的に見ていきましょう。

初心者でもできる!Pythonスクレイピングの実践

それでは、Pythonを使ったスクレイピングに実際に挑戦してみましょう。ここでは、プログラミング初心者の方でも取り組みやすいように、基本的な手順を4つのステップに分けて説明します。

  1. Pythonの環境を準備しよう
    まずはPythonを使える環境を用意します。お使いのパソコンにPythonが入っていなければ、公式サイト(python.org)からダウンロードしてインストールしましょう。WindowsやMacで簡単にインストールできますし、最近では最初からPythonがインストールされているパソコンもあります。また、インストールが難しければGoogle Colabなどブラウザ上でPythonを動かせるサービスを使う方法もあります。とにかく、Pythonが使える状態になれば準備OKです!
  2. 必要なライブラリをインストール(BeautifulSoupの導入)
    次に、スクレイピングに必要なライブラリをインストールしましょう。先ほど紹介したBeautifulSoupを使うために、Pythonのパッケージ管理ツール「pip」を使ってbeautifulsoup4というパッケージをインストールします。さらに、Webページの内容を取得するためにrequestsというライブラリも使いますので、一緒にインストールしておきます。コマンドプロンプト(ターミナル)で以下のコマンドを実行してください。

    bash
    pip install beautifulsoup4 requests

    これでスクレイピングに必要な準備は整いました。インストールが完了したら、Pythonスクリプトやノートブック上でimport requestsおよびfrom bs4 import BeautifulSoupが使えるようになります。
  3. 簡単なコードで推しの情報を取得する
    いよいよスクレイピングのコードを書いてみます。やることはシンプルで、先ほど述べた通り「Webページを取得して解析し、目的の情報を探す」だけです。例えば推しのSNSページのURLをPythonに教えてあげて、そのページから「出演情報」を含むテキストを探してみましょう。基本的な流れは次のとおりです。
    • Webページを取得: requests.get (推しのページのURL)でWebページのHTMLを取得します。
    • HTMLを解析: BeautifulSoupでそのHTMLを解析し、オブジェクト(soup)にします。例えばsoup = BeautifulSoup(html, 'html.parser')という感じです。
    • 情報を検索: soupオブジェクトから目的の情報を探します。簡単な方法としては、ページ内のテキストからキーワード「出演」が含まれる部分を探すことが考えられます。あるいは、投稿全体を表すタグ(例えば<p>タグなど)を全部抜き出して、その中から「出演」という言葉が入っているものだけを選ぶという手もあります。
    • 結果を表示: 見つけた情報を画面に表示してみましょう。print文で出力すれば、ターミナル上に推しの出演情報がずらっと表示されるはずです。ほんの数行のコードで、自動的に推しの出演情報を集められると思うとワクワクしませんか?コードそのものは難しいものではなく、英語の文章を読むような感覚で書けてしまいます。
  4. 取得した情報を見やすく整える
    最後に、取得できた出演情報の表示を見やすく整えましょう。そのまま生のテキストを出すだけでも目的は達成できますが、せっかくなので少し見栄えを良くしてみます。例えば、情報ひとつひとつの前に「●」を付けて箇条書きにしたり、日付と内容に分けて表示したりするだけで、だいぶ読みやすくなります。また、不要な空白や改行が含まれていたら、それらを取り除いてあげるとスッキリします。こうした文字の整形もPythonが得意とするところなので、自分の見やすい形にカスタマイズしてみましょう。※補足ですが、慣れてきたら集めた情報をファイルに保存したり、定期的にこのスクレイピングを実行して新しい情報があれば通知してくれるようなプログラムに発展させることもできます。

実際にコードを書いてみよう

それでは、上記のステップに沿って実際のPythonコードを書いてみましょう。今回の例では、仮に推しのSNSページから「出演」というキーワードを含む投稿を抽出する簡単なスクリプトを作成します。以下のコードを見てください。

import requests
from bs4 import BeautifulSoup

# 1. 推しのSNSページ(例として仮のURL)のHTMLを取得
url = "https://example.com/oshi_page"  # 推しのSNSや出演情報ページのURLに置き換える
response = requests.get(url)
html = response.text

# 2. BeautifulSoupでHTMLを解析
soup = BeautifulSoup(html, 'html.parser')

# 3. ページ内のすべての<p>タグを取得し、その中から「出演」を含むものを探す
posts = soup.find_all('p')
appearance_posts = []
for post in posts:
    text = post.get_text()
    if '出演' in text:
        appearance_posts.append(text)

# 4. 見つかった出演情報を画面に表示
for info in appearance_posts:
    print(info)

# (必要に応じて、ここでinfoの文字列を整形して見やすくする処理を入れてもOK)

このコードでは、requests.get()でWebページを取得し、BeautifulSoupで解析した後、すべての<p>タグのテキストをチェックして「出演」というキーワードが含まれるものだけをリストに集めています。最後に、そのリストに入った情報をprint()で出力しています。

例えば、実際の実行結果イメージとしては以下のようなテキストが表示されるでしょう。

〇〇さん出演情報:10月5日「夜の音楽番組」にゲスト出演決定
〇〇さん出演情報:10月10日 放送のドラマにカメオ出演予定

(※上記は架空の例ですが、こんなふうに推しの出演予定が自動でリストアップされたら便利ですよね!)

コードのポイントは、初心者でも読み書きしやすいPythonの文法と、強力なライブラリであるBeautifulSoupを組み合わせて、最小限のコードで目的を達成しているところです。if '出演' in textのように日本語のキーワードで条件を書けるのも直感的ですよね。

最後に

今回は、プログラミング初心者向けにPythonを使って推しのSNS出演情報をスクレイピングする方法をご紹介しました。Pythonは初心者に優しい言語であり、簡単なコードを書くだけで手作業では大変な情報収集を自動化できることがお分かりいただけたと思います。実際にコードを書いてみると、「本当にこれだけでいいの?」というほど少ないコードで動くので驚いたのではないでしょうか。

スクレイピングを活用すれば、推し活(推しの応援活動)がますます快適になります。毎日SNSをチェックしなくても、最新の出演情報を見逃さずに済むのは嬉しいですよね。ただし、サービスによってはスクレイピングが禁止されている場合もあるので、利用規約は守りつつ上手に活用してください。

最後に、今回学んだ方法を土台にして、さらに便利な機能にチャレンジしてみましょう。例えば、集めた情報をファイルに保存して蓄積したり、新しい出演情報が出たときにメールやLINEで通知が届くようにしたり、自動で毎日決まった時間にこのプログラムを動かすようにすることもできます。最初はプログラミング未経験だったあなたも、Pythonを使えばここまでできるようになります。ぜひ楽しみながら、プログラミングで推し活を充実させてみてくださいね!

白川秋
白川秋

ではでは、参考までに。

コメント

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