- プログラミングで自動化できることってどんなこと?
- 仕事の作業で自動化できる例って何かあるかなー?
プログラミングでできる自動化処理って意外と多いってご存知ですか?
この記事では、プログラミングで自動化できる作業を11例にわたって紹介します。
ここで紹介する以外にも自動化できることはたくさんあります。
記事の最後に「プログラミングによる自動化」の本も紹介するので、ぜひ参考にして、いつもの作業を楽にしましょう!
- プログラミングで自動化でできる11の作業
- 1. WEBデータの収集・解析の自動化 難易度:★
- 2. エクセル・csvへのデータの書き込みの自動化 難易度:★
- 3. ファイル操作の自動化(難易度:★)
- 4. 画像編集(トリミング、モザイクなど)の自動化 難易度:★
- 5. PDFからのテキスト抜き出しの自動化 難易度:★
- 6. ブラウザ操作の自動化 難易度:★★ Selenium
- 7. 画面操作の自動化 難易度:★★
- 8. Google検索の自動化 難易度:★★
- 9. 株価や為替レート、ビットコインの価格取得・売買の自動化 難易度:★★
- 10. メール送信の自動化 難易度:★★★「smtplib」「imaplib」でメール送信
- 11. Twitterのツイート収集の自動化 難易度:★★★
- プログラミングによる自動化を学ぶのにオススメの本
プログラミングで自動化でできる11の作業
プログラミングで自動化できる作業はたくさんあります。
ここでは、ほんの一部を紹介します。
サンプルプログラム(サンプルコード)と難易度も合わせて示しているので、実装の参考にしてください。
1. WEBデータの収集・解析の自動化 難易度:★
最初に紹介するのは、WEBデータの収集と解析の自動化です。
仕事でもプライベートでも、インターネットで検索して必要な情報をまとめることがありますよね。
たくさんのWEBサイトを比較して、欲しい情報を抜き出さなければなりません。意外と大変な作業ですよね。
この作業をプログラミングで自動化してみましょう。
プログラミング言語のPythonを使うとWEBデータの収集と解析を自動化できます。
自動化することで、たくさんのWEBサイトから必要な情報(テキストや図表、画像など)だけを一括で抽出し、保存できます。
WEBデータの収集・解析の自動化の方法
WEBデータの収集には、Pythonの外部ライブラリである「Requests」モジュールを使用します。
また、WEBデータの解析には外部ライブラリの「Beautiful Soup 4」を使用します。
どちらもWEBデータの取得や解析に使う定番ライブラリです。安心して使ってください。
これらを使うと、たとえば、以下のように指定したWEBサイトのデータを取得し、画像の情報だけを抽出できます。
ここではurlをwww.example.comとしていますが、ここにサイトのURLを入れれば、ページにあるすべての画像のURLを取得できます。
import requests
from bs4 import BeautifulSoup
# データを取得したいサイトのURL
url = 'https://www.example.com/'
# requestsモジュールを使用してHTMLを取得する
response = requests.get(url)
# BeautifulSoup4を使用してHTMLを解析する
soup = BeautifulSoup(response.content, 'html.parser')
# WEBサイトのタイトルを取得する
title = soup.title.text
# WEBサイトに含まれるすべての画像のリンクを取得する
images = []
for image in soup.find_all('img'):
src = image.get('src')
if src:
images.append(src)
# 結果を出力する
print("タイトル:", title)
print("画像パス:", images)
以下は、上記のコードを当サイトのホームページに使用した結果です。
イトル: chmod
画像パス: ['https://chmod774.com/wp-content/uploads/2023/02/21830aIMGL99841974_TP_V-320x180.jpg', 'https://chmod774.com/wp-content/uploads/2023/02/21830a0I9A97521937_TP_V-320x180.jpg', 'https://chmod774.com/wp-content/uploads/2023/02/PAK85_MBAdesagyou20140312_TP_V-320x180.jpg', 'https://chmod774.com/wp-content/uploads/2023/02/21830aIMGL99841974_TP_V-320x180.jpg']
このようにしてサイトのテキストや画像、リンクなど、必要な情報だけを抽出することができます。
※注意:プログラムによるWEBサイトへの大量のアクセスは、WEBサイトに負荷をかけてる場合があります。WEBサイトによっては、プログラムによるアクセスを禁止している場合もあります。上記のサンプルプログラムで使用しているexample.comはIANAによって説明用の使用を許可されているURLです。上記のプログラムを実際に使用する場合は、対象のサイトに迷惑がかからないように注意しましょう。
2. エクセル・csvへのデータの書き込みの自動化 難易度:★
ばらばらになったデータをエクセルやcsvなどの表形式にして整理することってありますよね。
データの量が多いと大変です。
こういうときもプログラミング言語Pythonを使えば、編集作業を自動化できます。
たとえば、先の例で。WEBサイトから集めてきたデータをcsvファイルにまとめて出力したり、データの分析結果をエクセルに出力したりできます。
エクセル・csvへのデータの書き込みの自動化の方法
エクセルやcsvへのデータの書き込みは、以下のモジュールを使うと便利です。
csvモジュールはPythonに標準的に組み込まれているモジュールです。csvの読み書きができます。
エクセルに出力する場合も、エクセルがcsv形式に対応しているため、csvモジュールで十分な場合があります。
エクセルファイルをエクセル形式のまま読み書きしたい場合や、表のレイアウトが重要な場合は、外部モジュールのOpenPyXLを使うと便利です。
今回はサンプルとして、あるcsvファイル(input.csv)から別のcsvファイル(output.csv)にデータの一部を転記する例を示します。
import csv
# 読み込むcsvファイルのパスを指定する
input_file = 'input.csv'
# 書き込むcsvファイルのパスを指定する
output_file = 'output.csv'
# 開始列と終了列を指定して、これらの列のデータだけをoutput.csvに転記する
start_index = 0
end_index = 1
# csvファイルを読み込む。ファイルの中身をリストに格納する
with open(input_file, 'r') as f:
reader = csv.reader(f)
data = [row for row in reader]
# データの一部を取得して書き込む
with open(output_file, 'w', newline='') as f:
writer = csv.writer(f)
for row in data:
output_row = [row[start_index], row[end_index]]
writer.writerow(output_row)
上記のサンプルプログラムを以下のinput.csvに使用してみましょう。
1月1日,月,晴,10度
1月2日,火,曇,12度
1月3日,水,晴,9度
1月4日,木,雨,10度
1月5日,金,晴,11度
1月6日,土,曇,9度
1月7日,日,晴,8度
サンプルプログラムを実行した結果が以下です。
1月1日,月
1月2日,火
1月3日,水
1月4日,木
1月5日,金
1月6日,土
1月7日,日
指定した通り0行目から1行目までのデータが転記できていますね。
このようにPythonを使えば、表形式のデータの読み書きをプログラムで自動化できます。
転記する情報がたくさんある場合や、複数のcsvファイルから必要な列・行だけを抜き出して、ひとつにまとめなければならないときなど、このような自動化ができるととても便利です。
3. ファイル操作の自動化(難易度:★)
- デスクトップやダウンロードフォルダにファイルが散らばっている
- 必要なファイルだけ探してひとつのフォルダにまとめたい
- ファイル名を一括で変更したい
- 指定したパスのファイルだけ一括で削除したい
こんなときプログラミングスキルがあれば、短時間で作業を終えられます。
プログラミング言語Pythonを使えば、ファイルやフォルダの操作も簡単に自動化できます。
ファイル操作を自動化する方法
Pythonでファイル操作を自動化するには、以下のモジュールが便利です。
いずれもPythonに標準的に組み込まれているモジュールです。
こういったモジュールが標準で使えることからも、Pythonが自動化処理に向いていることがわかりますね。
osモジュールはその名の通り、windowsやmacOSやLinuxなどのos(オペレーティング・システム)に依存する処理を手伝ってくれるモジュールです。フォルダの作成やファイル名の変更などに使います。
shutilモジュールはファイル操作に使用するモジュールです。ファイルのコピーや移動、削除をしたいときに使います。
globモジュールはファイルパス(ファイル名)のパターンマッチングに使うモジュールです。ファイル名が特定のパターンに合うかを判定するのに便利です。
ここではサンプルプログラムとして、ファイル名を一括で変更する例を示します。
import os
import glob
# ファイルが存在するフォルダのパスを指定する
folder_path = '/path/to/folder/'
# 置換前の文字列と置換後の文字列を指定する
old_str = '2022年1月'
new_str = '2023年1月'
# ファイル名の一部を置換してファイル名を変更する
for file_path in glob.glob(folder_path + '*' + old_str + '*'):
new_file_path = file_path.replace(old_str, new_str)
os.rename(file_path, new_file_path)
この例では、フォルダを指定し、そのフォルダにあるファイル名に「2022年1月」という文字列が含まれていたら、それらを「2023年1月」と置き換えます。
「ファイル名を全部2022年のまま作ってしまった…」というときに便利ですね。
このように「ファイルに関するちょっと面倒な作業」を簡単に自動化できます。
4. 画像編集(トリミング、モザイクなど)の自動化 難易度:★
- 1000枚の画像をトリミングしたいんだけど時間かかりすぎ…
- 大量の画像にモザイクを入れなきゃいけないんだけど、手作業じゃ大変だから外注する?
こんなとき、プログラミングができれば、数分で作業を完了できます。
トリミングやリサイズ、モザイクの追加、ぼかしの追加、色の変更、線画への変換、特定領域の塗りつぶしなど、全部プログラミングで自動化できます。
画像編集を自動化するには?
画像編集の自動化にもプログラミング言語Pythonを使います。
画像編集には以下のモジュールを使います。
- Pillow … 画像の読み込みや書き込みの他、簡単な画像処理ができます。
- OpenCV … ぼかしやノイズ除去など、高度な画像処理ができます。
ここでは、サンプルプログラムとして、フォルダに含まれるすべての画像にモザイクをかける処理を紹介します。
注意: 以下を実行すると既存のファイルにモザイクがかかります。困る場合は、別途バックアップを取るか、新規ファイルとして「モザイクあり」を作成できるようにプログラムを改変してください。
from PIL import Image
import glob
# モザイクの大きさを指定する
block_size = 50
# 画像のあるフォルダのパスを指定する
# folder_path = '/path/to/folder/'
# すべての画像にモザイクをかける
for file_path in glob.glob(folder_path + '*.png'):
# 画像を開く
img = Image.open(file_path)
# 画像にモザイクをかける
img = img.resize(
(img.width // block_size, img.height // block_size),
resample=Image.BOX
)
img = img.resize(
(img.width * block_size, img.height * block_size),
resample=Image.NEAREST
)
# モザイクをかけた画像を保存する
img.save(f'{file_path}')
以下はこのプログラムを使ってモザイクをかけた例です。きちんとモザイクがかかっていることがわかりますね。
このようにプログラミングで画像の処理を簡単に自動化できます。
5. PDFからのテキスト抜き出しの自動化 難易度:★
- PDFからテキストをコピペしたい
- PDF形式の論文を読みやすくしたい
このような問題もプログラミングで解決できます。
簡単なプログラムでPDFのテキストや画像、表などを抽出することが可能です。
PDFからテキストを抜き出すには?
PDFからテキストを抜き出すには、PythonのPDFMinerという外部ライブラリを使用します。
PDFMinerはPDFからテキストを抽出できるライブラリです。
完璧ではないものの表や画像の抜き出しにも対応しています。
※PDFMinerはオリジナルのものからPdfminer.sixという名称でフォークされ、メンテナンスされています。現在はこちらを使うのが一般的なようです。
以下のサンプルプログラムではPDFMinerを使って、PDFファイルからテキストを抽出します。
import io
import pdfminer
from pdfminer.converter import TextConverter
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfpage import PDFPage
def extract_text_from_pdf(pdf_path):
resource_manager = PDFResourceManager()
text_content = io.StringIO()
laparams = pdfminer.layout.LAParams()
device = TextConverter(resource_manager, text_content, laparams=laparams)
interpreter = PDFPageInterpreter(resource_manager, device)
with open(pdf_path, 'rb') as file:
for page in PDFPage.get_pages(file, check_extractable=True):
interpreter.process_page(page)
text = text_content.getvalue()
device.close()
text_content.close()
return text
# PDFファイルからテキストを抽出する
pdf_text = extract_text_from_pdf("example.pdf")
print(pdf_text)
このプログラムでは、PDFファイルを選択後、PDFMinerのTextConverterを使用してテキストを抽出します。
それから、PDFPageInterpreterでPDFのページを読み込み、そのページのテキストを抽出します。
最後に、抽出したテキストをまとめて返します。
使い方が複雑に見えるかもしれませんが、このサンプルプログラムを使ってテキストを抽出できます。
テキストの抽出ができれば、あとはPythonを使って自由に整形できます。
まずは一度試してみてください。
6. ブラウザ操作の自動化 難易度:★★ Selenium
続いては、ブラウザ操作の自動化です。
ここからは少し難易度が上がりますが、自動化の効果もそれだけ大きくなります。
頑張ってついてきてください。
ChromeやSafari、Edgeなどのブラウザを使っていると「この操作、何回も繰り返してるなー」って思うことがありませんか?
たとえば、会社で勤怠打刻をするとき、打刻画面を開くために、ポータルサイトを開いて、打刻画面へのリンクを探し、打刻画面を開き、社員番号を入れて、パスワードを入れて、ようやく打刻ボタンが押せる。
筆者はこんな経験がありました。
こんなとき、一連の操作を自動化することで、ボタンひとつで打刻できるようになります。
打刻以外にもフォーム入力やボタンの連打など、いつも繰り返す操作があるなら自動化すると便利ですよ。
ブラウザの操作を自動化するには?
ブラウザの操作を自動化するにはSeleniumというソフトウェアを使用します。
SeleniumはJavaScriptやPythonなどのプログラミング言語を経由して使うこともできます。
ここではChromeブラウザを使っている想定でサンプルプログラムを紹介しましょう。
ここではJavaScriptを使ったプログラムを示します。
WEBサイトにあるフォームのメールアドレスとパスワードの入力欄を取得し、値を入力した後、送信ボタンをクリックする例です。
メールアドレスやパスワード、入力欄やボタンを取得するためのidなどは対象のWEBサイトに合わせて変更しましょう。
// SeleniumのWebDriverをインポート
const { Builder, By, Key, until } = require('selenium-webdriver');
// WebDriverを作成
const driver = new Builder().forBrowser('chrome').build();
// Webサイトを開く
driver.get('https://example.com');
// フォームに入力するデータ
const inputText = 'example';
const inputPassword = 'password';
// フォームの要素を取得して入力
driver.findElement(By.name('username')).sendKeys(inputText);
driver.findElement(By.name('password')).sendKeys(inputPassword);
// ボタンをクリック
driver.findElement(By.id('submit-button')).click();
// 5秒間待つ
driver.wait(until.titleIs('Expected Title'), 5000);
// ドライバーを終了する
driver.quit();
このプログラムを動かすにはSeleniumのWEBDriverのインストールが必要です。
Seleniumの使い方についてはGoogleで検索すればたくさんの情報が出てくるので、調べてみてください。
使い方にコツがいるので、慣れが必要ですが、上手く使えば、多くの面倒な手続きを高速で処理できるようになります。
7. 画面操作の自動化 難易度:★★
SeleniumでWEBブラウザの操作を自動化できるように、パソコン上のあらゆる操作をPythonで自動化できます。
Pythonを使えば、マウスやキーボードの操作を決められた手順で行うようにプログラムできるのです。
画面内にあるボタンを画像を使って検索したり、操作を一定時間操作を遅延させることもできます。
これによって画面中のボタンをクリックさせたり、ローディンク中に操作を待たせることができます。
マウスやキーボードの操作を安定的に自動化するのにはコツがいりますが、人間の動きを再現できるため、これまでに紹介した方法で自動化できないときの最終手段として重宝します。
画面操作を自動化するには?
画面操作を自動化するには、PythonのPyAutoGUIという外部ライブラリを使用します。
PyAutoGUIはプログラミング言語Pythonを使って、マウスやキーボードなどのGUI操作を自動化するためのライブラリです。
pyautogui.moveTo(10, 20)
やpyautogui.click()
といった簡単なプログラムを書くだけで、マウスやキーボードの操作をプログラムで再現できます。
ここでは、サンプルプログラムとして「マウスを正方形に動かす」操作を示します。
以下のプログラムを実行するには、事前に下記コマンドでpyoutguiをインストールする必要があります。
pip isntall pyautogui
以下がサンプルプログラムです。
import pyautogui
import time
# スクリーンサイズを取得する
screen_width, screen_height = pyautogui.size()
# 画面中心に移動する
center_x, center_y = screen_width // 2, screen_height // 2
pyautogui.dragTo(
center_x,
center_y,
duration=1,
button='middle'
)
# マウスを正方形に移動する
for point in [(0, 60), (60, 60), (60, 0), (0, 0)]:
pyautogui.dragTo(
center_x + point[0],
center_y + point[1],
duration=1,
button='middle'
)
# 5秒待機してプログラムを終了する
time.sleep(5)
このようにPyAutoGUIを使えば、簡単にマウスやキーボードの操作を自動化できます。
8. Google検索の自動化 難易度:★★
調べ物をするためにGoogleを使うことは多いと思います。
現代では、Google検索のスキル次第で仕事や生活の質が大きく変わってきます。
実は、そんなGoogle検索もプログラムで自動化できます。
検索を自動化すると、短時間で多くの情報を集めることができます。
スクレイピングやクローリングと組み合わせることで、複数のWEBサイトを横断して必要な情報を抽出できます。
情報収集を高速化できて、仕事の質も量もよくなります。
Google検索を自動化するには?
Google検索を自動化するには、Googleが提供している「API」を使用します。
API(エー・ピー・アイ)は「Application Programming Interface」の略称です。
Applicationとは「アプリ」のことです。ここでいう「アプリ」には、WEBアプリやスマホアプリなど、様々なアプリが含まれます。
Programmingはそのまま「プログラミング」です。
Interface(インターフェース)とは「人間とコンピュータ」や「コンピュータとコンピュータ」の「接点」を意味します。
たとえば、スマホアプリの「画面」は「人間とコンピュータ」の接点としてのインターフェースです(ユーザーインターフェースと呼ぶこともあります)。
APIは「コンピュータとコンピュータ」のインターフェースです。
今回紹介するAPIは、私たちがプログラミングで作った「Pyhtonアプリケーション」と、Googleが所有する「検索機能」をつなぐインターフェースです。
さて、そのAPIの名は「Custom Search JSON API」です。
「Custom Search JSON API」を使って検索を自動化できます。
「Custom Search JSON API」を使用するには、事前にAPIキーの発行が必要です。Googleはこの「キー」のよって個別のアプリケーションを識別して、使用回数の制限しています。
以下は、Custom Search JSON APIを使用して「example.com」というキーワードの検索を自動化するPythonプログラムの例です。
検索結果の上位3件を取得します。
from googleapiclient.discovery import build
import pprint
# Googleカスタム検索エンジンの情報
DEVELOPER_KEY = "DEVELOPER_KEY"
CSE_ID = "CSE_ID"
# 上位3件を取得
LIST_NUM = 3
# 検索ワード
query = 'example.com'
# 検索エンジンを構築
service = build('customsearch', 'v1', developerKey=DEVELOPER_KEY)
# 検索を実行
res = service.cse().list(q=query, cx=CSE_ID, num=LIST_NUM).execute()
# 検索結果を表示
pprint.pprint(res)
このプログラムにAPIキー(とCSE_ID)を設定して、実行した結果の一部抜粋が以下です。
{
'context': {'title': 'xxxxx'},
'items': [{'cacheId': '39oPFzYFz9MJ',
'displayLink': 'example.com',
'formattedUrl': 'https://example.com/',
'htmlFormattedUrl': 'https://<b>example</b>.<b>com</b>/',
'htmlSnippet': '<b>Example</b> Domain. This domain is for use in '
'illustrative <b>examples</b> in documents. You may '
'use this domain in literature without prior '
'coordination or asking for ...',
'htmlTitle': '<b>Example</b> Domain',
'kind': 'customsearch#result',
'link': 'https://example.com/',
'pagemap': {'metatags': [{'viewport': 'width=device-width, '
'initial-scale=1'}]},
'snippet': 'Example Domain. This domain is for use in illustrative '
'examples in documents. You may use this domain in '
'literature without prior coordination or asking for\xa0'
'...',
'title': 'Example Domain'},
...
検索結果の上位のWEBサイトの「URL」「タイトル」「スニペット」などが取得できていることがわかります。
ここで取得したURLに対してスクレイピングやクローリングを行えば、検索結果のサイトの情報を一括で抽出できるというわけです。
このようにAPIを上手く活用することでGoogle検索までも自動化できるのです。
9. 株価や為替レート、ビットコインの価格取得・売買の自動化 難易度:★★
プログラミングを駆使すれば、株価や為替レート、ビットコインの価格取得や売買も自動化できます。
仕事や趣味で、株価や為替レートをリアルタイムに監視する必要がある場合は、役に立つかもしれません。
株価や為替レート、ビットコインの価格取得・売買を自動化するには?
株価や為替レート、ビットコインの価格取得・売買を自動化するにはAPIを使用します。
株価は「東京証券取引所」が有料でリアルタイム情報のAPIを提供しています。
外国株式や為替レートは米Yahooが提供するAPIを使用すれば取得できます。
株式売買の自動化はauカブコム証券が提供するkabuステーション® APIを使用するとプログラム経由での売買ができそうです。
ビットコインやその他の暗号資産については、取引所を運営する企業が各社APIを提供しています。
たとえば、GMOコインが提供するAPIではドキュメントに記載の方法でビットコインの板情報を取得できます。
10. メール送信の自動化 難易度:★★★「smtplib」「imaplib」でメール送信
メール送信もプログラミングで自動化できる作業のひとつです。
大量の顧客リストにあるメールアドレスに対して、1件ずつメールを打つのは大変ですよね。
CRMツールなどで一括送信できれば簡単ですが、そういったツールが使えない場合は手作業になってしまいまふ。
プログラミングでメール送信を自動化すれば、高度なツールを使わなくても無料でメールを一括送信できます。
メール送信を自動化するには?
メール送信を自動化するには、プログラミング言語Pythonを使用します。
以下では、あなたがGmailを使っていると仮定して、Gmailのアカウントから対象のメールアドレスにメールを自動送信する例を紹介します。
メールの自動送信には、Pythonのsmtplibモジュールを使用します。
以下がサンプルプログラムです。
import smtplib
from email.mime.text import MIMEText
from email.utils import formatdate
# あなたのGmailアカウント情報
gmail_account = 'YOUR_GMAIL_ADDRESS@gmail.com'
gmail_password = 'YOUR_GMAIL_PASSWORD'
# 送信先のメールアドレス
to_address = 'TO_EMAIL_ADDRESS'
# メールの内容を設定する
subject = 'メール送信のテスト'
body = 'Pythonからのメール送信テストです。'
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = gmail_account
msg['To'] = to_address
msg['Date'] = formatdate()
# SMTPサーバーに接続してメールを送信する
smtp_server = 'smtp.gmail.com'
smtp_port = 587
smtp = smtplib.SMTP(smtp_server, smtp_port)
smtp.ehlo()
smtp.starttls()
smtp.login(gmail_account, gmail_password)
smtp.sendmail(gmail_account, to_address, msg.as_string())
smtp.quit()
このサンプルプログラムでメールを送信するには、以下の設定をする必要があります。
- あなたのGmailアカウントの情報を
gmail_account
とgmail_password
に設定します。 - 送信先のメールアドレスを
to_address
に設定します。 - GmailのSMTPサーバーを設定
します
。
SMTPサーバーの設定が少しややこしいですが、一度クリアすればあとはこのサンプルプログラムを使い回すだけです。
to_addressの部分をリストに置き換え、forループで送信処理を繰り返せば、複数人に同じメールを送信できます。
ただし、メールは一度送ってしまったら取消できません。事前にテスト用のメールアドレスで実験し、問題がないことをよく確認してから本番利用しましょう。
11. Twitterのツイート収集の自動化 難易度:★★★
広報やマーケティングを担当している人なら、TwitterやInstagramなどのSNSを運用することがあるのではないでしょうか。
特にマーケティングにあたっては、自社製品に関する投稿を収集・分析できるスキルが求められることでしょう。
プログラミングを使えば、Twitterでの自社製品に関するツイートを自動収集できます。
収集したツイートを自然言語処理や統計的な分析に使用することもできます。
定性的だったマーケティング調査が定量的になり、より強力なインサイトを得られるかもしれません。
ツイートを自動収集するには?
Twitterでツイートを自動収集するにはTwitter APIを使用します。
Twitter APIを使用するには事前に英語での申請が必要です(人によっては、ここがハードルの高いポイントかもしれません)。
API申請が完了し、APIキーを取得できたら、プログラムを経由したツイートの検索や自動ツイートが可能になります。
たとえば、Search Tweetsのドキュメントに従うと、ツイートを機械的に検索して取得できます。
上記のドキュメントにあるように、TwitterのAPIは指定されたURLに対してHTTPリクエストを作成して送信することで利用できるのですが、そのまま使うと複雑で面倒です。
そこでtweepyのようなPythonのライブラリを使用すると、APIの利用が簡単になります。
以下は、tweepyを使用して検索キーワード「Python」に関するツイートを収集するサンプルプログラムです。
import tweepy
# Twitter APIの認証情報
consumer_key = 'YOUR_CONSUMER_KEY'
consumer_secret = 'YOUR_CONSUMER_SECRET'
access_token = 'YOUR_ACCESS_TOKEN'
access_token_secret = 'YOUR_ACCESS_TOKEN_SECRET'
# 認証情報を設定する
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
# APIクライアントを作成する
api = tweepy.API(auth)
# 検索クエリを設定する
query = 'Python'
# ツイートを検索する
tweets = api.search(q=query, count=10)
# 検索結果を表示する
for tweet in tweets:
print(f'{tweet.user.screen_name}: {tweet.text}')
print('---')
事前にTwitter APIの利用申請を済ませて、APIの認証情報を手に入れる必要があります。
コードの前半で認証情報をセットします。
その後は、自由に検索クエリを設定してapi.search
関数を呼び出すだけで、クエリに合致するツイートを収集できます。
このように、プログラミングを駆使すればツイッターなどのSNS上の情報収集も自動化できるのです。
プログラミングによる自動化を学ぶのにオススメの本
プログラミングによる自動化を学ぶためにオススメの本を紹介します。
退屈なことはPythonにやらせよう: ノンプログラマーにもできる自動化処理プログラミング
オススメの本は「退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング」です。
この本は「ノンプログラマー」つまりプログラマー以外の人に向けて書かれた自動化の本です。
ノンプログラマー向けなので内容が易しく、すぐに実践できます。
筆者は、学生のときに、論文の執筆作業を効率化するために、この本をボロボロになるまで読みました。
Pythonを使った自動化の本として絶対に外さない一冊です。
この本の出版社は「オライリー・ジャパン」といって、技術書をたくさん出している出版社さんなのですが、どの本も品質が高く、信頼できます。
オススメの本を何冊か紹介しようと思ったのですが、この本がかなり優秀なので、この一冊さえ持っていれば最初は十分だろうと判断しました。
よって、オススメの本はこの一冊だけです。
プログラミングも自動化される?
さて、ここまではプログラミングによる作業の自動化について述べてきました。
いろいろな作業を自動化できるので、仕事や趣味への応用のイメージも湧いたのではないかと思います。
ここで、想像力が豊かな方は「プログラミングそのものも自動化できるのでは?」と考えたかもしれません。
実はいま、プログラミングの仕事も自動化されつつあります。
プログラミングの自動化がリアルな話になってきたのは2022年のことです。
2022年にOpenAIという組織が、ChatGPTというAIチャットボットを公開しました。
チャットボットとは「人間の質問にコンピュータが答えてくれる」アプリケーションです。
最近はチャットボットにAIが使われるようになり、人間のような自然な回答ができるようになりつつあります。
特にChatGPTは自然な回答が得意で、発表後、すぐに有名になりました。
さらに、ChatGPTには「プログラミングに関する質問にも回答できる」という特徴があります。
たとえば、ChatGPTに「マンデルブロウの図形を描画するPythonプログラムを書いてください」と質問します。
すると、以下のようにマンデルブロウ集合を描画するプログラムをPythonで書いてくれるのです。
実際、このプログラムを実行すると、マンデルブロウ集合を描画できます。
高度な質問をすると誤った回答をすることもありますが、このように簡単な日本語の指示だけでプログラミングができてしまうのは、ITエンジニアやプログラマにとっては恐ろしい話です。
しかも、ある記事によれば「ChatGPTはGoogleのコーディング面接をレベル3のエンジニアとして通過できる」そうです。
レベル3のエンジニアはGoogleの中では入門レベルなのですが、Googleのコーディング面接を通過すること自体が難しいことを踏まえると驚きの結果です。
レベル3のエンジニアの給与は183,000ドルと高給です。
このようにAIによってプログラミングが自動化できる可能性があり、プログラマやエンジニアにとっての脅威になっています。
まとめ
この記事では、プログラミングで自動化できる作業の例を11個紹介しました。
プログラミングができれば、手作業では実現できないほど高速で作業を終えることができます。
興味のある内容があったら、ぜひ実装して、作業を自動的に終わらましょう。