【トップニュース】をPythonで毎日Slackに自動投稿する仕組み化してみた

Python

はじめに

最新ニュースを毎日確認するのは手間がかかるものです。
しかし、PythonスクリプトSlackのIncoming Webhookを活用することで、
トップニュースを毎日自動的にSlackに投稿するシステムを構築することができます。
この記事では、このシステムの設定方法とそのメリットについて詳しく紹介します。

例としてTechCrunchのニュースを取得する方法

まず、TechCrunchのトップページから最新の見出しを取得するためのPythonスクリプトを作成します。
このスクリプトはrequestsライブラリを使用してHTMLを取得し、
BeautifulSoupライブラリを使って見出しを抽出します。
以下のコードは、その具体的な実装例です。

TechCrunchの最新ニュースを毎日キャッチ!

以下をPythonで実行すると、トップ画面の見出しをテキスト吐き出すことができます。

import requests
from bs4 import BeautifulSoup
import json

def fetch_techcrunch_headlines():
    # TechCrunchのトップページのURL
    url = "https://techcrunch.com/"

    # ページをリクエスト
    response = requests.get(url)
    response.raise_for_status()  # エラーが発生した場合は例外を投げる

    # ページのHTMLをパース
    soup = BeautifulSoup(response.text, 'html.parser')

    # <h2>要素を抽出
    h2_elements = soup.find_all('h2', limit=5)

    # <h2>要素のテキストを抽出
    headlines = [h2.get_text(strip=True) for h2 in h2_elements]

    return headlines

実装後のアウトプットイメージ

↓このように動的な情報を毎日投稿する仕組みをつくることができます。

PythonスクリプトとSlack Webhookの連携で実現

TechCrunchのトップページから最初の5つの見出しを抽出し、
それを指定されたSlackチャンネルに投稿します。

Slack WebhookのURLを設定する際に、デフォルトのチャンネルを指定するか、
スクリプト内でチャンネルを指定することで、特定のチャンネルに投稿できます。

詳細なコードは有料にてこちらでご紹介。

定期実行で情報収集を自動化

Windows (タスクスケジューラ)

  1. 「タスク スケジューラ」を開きます。
  2. 「基本タスクの作成」をクリックし、タスク名を入力します。
  3. 「毎日」を選択し、スクリプトを実行したい時間を設定します。
  4. 「プログラムの開始」を選択し、Program/script にPythonのパス(例: C:\python.exe)を入力し、Add arguments (optional) にスクリプトのフルパスを入力します(例: C:\path\to\your\post_techcrunch_headlines.py)。
  5. 「完了」をクリックしてタスクを保存します。

まとめ

このシステムを導入することで、TechCrunchの最新ニュースを毎日自動的にSlackに投稿し、
常に最新の情報をチームで共有することができます。
PythonスクリプトとSlack Webhookの組み合わせにより、情報収集の効率が大幅に向上します。
定期実行の設定も簡単で、スクリプトの自動実行をスムーズに行うことができます。

スプレッドシートからの自動投稿の方法はこちら