Posted at

PythonでサクッとCLIツールを作る


はじめに

業務でちょっとツールが必要という時はPythonを使いましょうという話。

お仕事でSEOやコンテンツマーケティングをしていると、ページをスクレイピングしたりするためにちょっとしたツールが必要になることがある。Pythonはこのようなタスクを片付けるのにちょうどいい。


この記事でやらないこと

argparseやclickみたいな、コマンドライン用のパースライブラリは使用しない。ヘルプメッセージも出さない。目的を達成するための最低限の実装さえあればよい、という状況を想定しています。


想定するファイル構成

シンプルなツールを想定しているので、ファイルは2つだけ。

oreore-project

+ app.py
+ setup.py


実装手順


setup.pyを書く

install_requiresに必要なパッケージを書き、entry_pointsconsole_scriptsを定義する。

setup.pyについては以前まとめたので、詳細が気になる人は読んで欲しい。(pythonのsetup.pyについてまとめる)


setup.py

from setuptools import setup

setup(
install_requires=["requests","beautifulsoup4"],
entry_points={
"console_scripts": [
"oreore = app:main"
]
}
)



処理を実装する


app.py

import requests

import sys
from bs4 import BeautifulSoup

def main():
# 引数の受け取り
url = sys.argv[1]

# 適当に処理を実装
soup = BeautifulSoup(requests.get(url).text, "html.parser")
print(soup.title.string)



必要なパッケージをインストールする

プロジェクトディレクトリに移動して次のコマンドを実行。

$ pip install -e .


実行方法

コンソールを開き、コマンドを実行する。

$ oreore https://www.google.co.jp

Google