タスクの自動化、めちゃくちゃ便利ですよね!毎日同じ作業を繰り返すのは退屈で時間も無駄。でもPythonとAPIを使えば、そんな面倒な作業を自動化して、もっと楽しいことに時間を使えるようになります。今回は、PythonでAPIを活用してタスクを自動化する方法を一緒に学んでいきましょう。具体的なコードも紹介するので、ぜひ試してみてください!
APIって何?
まず、API(Application Programming Interface)について簡単に説明します。APIは、あるサービスやアプリケーションと他のプログラムがやり取りするための窓口です。例えば、天気予報のAPIを使えば、プログラムで今日の天気を自動で取得できます。PythonからAPIを使うことで、いろいろなサービスと連携して、タスクを自動化することができるんです。
必要なライブラリ
PythonでAPIとやり取りするには、requests
ライブラリが便利です。もしインストールしていない場合は、次のコマンドを使ってインストールしてください。
pip install requests
このライブラリを使うと、簡単にAPIにリクエストを送って、結果を取得することができます。
タスクの自動化例:天気予報を取得して通知する
ここでは、天気予報を取得して、それを自動でメールや通知として送信する簡単なプログラムを作ってみましょう。
1. 天気予報APIからデータを取得する
まずは、無料で使える天気予報API「OpenWeatherMap」を使って、天気情報を取得してみます。以下のコードでは、指定した都市の天気情報を取得するようにしています。
import requests def get_weather(city_name): api_key = "YOUR_API_KEY" # OpenWeatherMapのAPIキーを入力してください base_url = "http://api.openweathermap.org/data/2.5/weather" params = { 'q': city_name, 'appid': api_key, 'units': 'metric', 'lang': 'ja' } response = requests.get(base_url, params=params) if response.status_code == 200: weather_data = response.json() temp = weather_data['main']['temp'] weather_description = weather_data['weather'][0]['description'] return f"{city_name}の現在の気温は{temp}度、天気は{weather_description}です。" else: return "天気情報の取得に失敗しました。" # 東京の天気を取得して表示する print(get_weather("Tokyo"))
APIキー(YOUR_API_KEY
)は、OpenWeatherMapのサイトでアカウントを作成し、取得してください。このコードを実行すると、指定した都市の天気情報を取得して、わかりやすく表示してくれます。
実行結果
Tokyoの現在の気温は25度、天気は晴れです。
2. 天気情報をメールで送信する
次に、この天気情報をメールで送信する部分を作成します。smtplib
を使って、Gmailを通じてメールを送ることができます。
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart def send_email(subject, body, to_email): from_email = "your_email@gmail.com" password = "your_email_password" msg = MIMEMultipart() msg['From'] = from_email msg['To'] = to_email msg['Subject'] = subject msg.attach(MIMEText(body, 'plain')) with smtplib.SMTP('smtp.gmail.com', 587) as server: server.starttls() server.login(from_email, password) server.send_message(msg) print("メールが送信されました。") # 天気情報をメールで送信する weather_info = get_weather("Tokyo") send_email("今日の天気", weather_info, "recipient@example.com")
このコードでは、Gmailを使って天気情報を指定したメールアドレスに送信します。注意点として、Gmailの「安全性の低いアプリのアクセス」を有効にしておく必要があります。
実行結果
メールが送信されました。
タスクの自動化例:定期的に実行する
「天気を毎朝7時に自動でメールで知らせたい!」そんな要望にもPythonは応えてくれます。Pythonのschedule
ライブラリを使うと、定期的にタスクを実行することができます。
pip install schedule
次に、schedule
を使って、毎朝7時に天気を取得してメールを送信するように設定してみましょう。
import schedule import time def job(): weather_info = get_weather("Tokyo") send_email("今日の天気", weather_info, "recipient@example.com") # 毎朝7時に実行 schedule.every().day.at("07:00").do(job) print("タスクスケジューラが実行中です...") while True: schedule.run_pending() time.sleep(60)
このコードを実行しておくと、毎朝7時に自動で天気情報が取得され、メールで送信されます。これで、毎日手動で天気を調べる手間が省けますね!
実行結果
タスクスケジューラが実行中です...
まとめ:PythonとAPIで自動化を楽しもう!
PythonとAPIを組み合わせれば、ちょっとした日常の手間を自動化することができます。今回は天気予報を例にしましたが、他にも「Googleカレンダーと連携してスケジュールを自動化」「Twitterの自動投稿」など、さまざまな可能性があります。日々の作業を自動化して、もっと効率的に過ごしましょう!
次回のテーマ
次回は、「PythonでTwitter APIを使った自動投稿ボットの作り方」をご紹介します。お楽しみに!