こんにちは、ゆきです@・ω・@
はじめてChatGPTの力も借りながら、Pythonツールを開発しました。
今やっている副業業務の一部自動化として、特定のサイトから情報を引っ張ってくるツールを開発しました。
■この記事について(要約)
Pythonで@コスメサイトのランキングから商品名とその商品紹介ページのURLを取得するツールを作成したので、その機能や作成背景(理由)をまとめて記事にしました。
ツールの概要
「URLを入れてボタンを押すだけ」で、ランキング情報をExcelに「@cosme」のランキングページから商品情報を自動取得し、Excelファイルに出力するWindowsアプリです。
なぜこのツールを作ったか
副業で流行のコスメ商品リサーチ作業をしており、手作業からワンクリックに変えられないか?という思いから作りました。
これまでWebから情報取得するのはRPA(WinActor)を使ってきましたが、Pythonでの自動化ツール開発はほぼ未経験でした。
「スクレイピングってどうやるんだろう?」 「GUIアプリってPythonで作れるの?」
そんな疑問を、実際に手を動かして解決したくて制作を始めました。
ただ作るだけでなく、GitHubで公開し、他の人が使える形にするところまでを目標にしました。
機能
- @cosmeランキングページから商品名
- 商品URLを自動取得 取得した情報をExcelファイル(.xlsx)に出力
- ファイル名にカテゴリ名と実行日時を自動付与
- GUI操作で誰でも簡単に使える
工夫したポイント
1. 「ランキング部分だけ」を正確に取得
@cosmeのランキングページには、広告リンクやナビゲーションなど、たくさんのリンクが混在しています。
最初は全てのリンクを拾ってしまい、「これじゃない感」が満載でした。
そこでXpathでランキングエリアだけを指定することで、商品情報のみを正確に抽出できるようにしました。
2. コマンド操作なしで使えるGUI

「Pythonがよく分からない人でも使えるツール」を意識して、GUI化しました。
以下の3ステップで完結する、シンプルな画面構成にしています。
① 取得する@コスメランキングURLを入力
下記のような各ランキングのURLを入力します。

②Excelファイル保存先フォルダ
「参照」ボタンより、出力されるExcelファイルの保存先フォルダを指定してください。
または、直接フォルダパスを入力してください。
③取得を開始
「取得開始▶」ボタンをクリックすると、「Excelファイル保存先フォルダ」にデータが出力されます。
3. 「処理中」が分かるスピナー表示
取得処理中に画面が固まったように見えると、「ちゃんと動いてる?」と不安になります。
そのため、実行中はスピナーを表示して、「今、取得してますよ」が分かるようにしました。
小さな配慮ですが、使う人の気持ちを考えた実装を心がけました。
4. バッジファイルからアプリを立ち上げられる

Pythonのアプリはいちいちコマンドプロンプトに起動コマンドを入力して起動させなくてはなりません。
それが面倒くさかったので、バッチファイルをたたけばアプリ起動するようにしました。
使い方

以下の①~③の順に操作を行なってください。
① 取得する@コスメランキングURLを入力
下記のような各ランキングのURLを入力します。

②Excelファイル保存先フォルダ
「参照」ボタンより、出力されるExcelファイルの保存先フォルダを指定してください。
または、直接フォルダパスを入力してください。
③取得を開始
「取得開始▶」ボタンをクリックすると、「Excelファイル保存先フォルダ」にデータが出力されます。
関連リンク
GitHub:コードの詳細等を載せています。
YukiKunikata/Python_Portfolio/app_Python/@cosme_scraping_app
note:ツール開発について、作成背景や技術について
https://note.com/gyoumu_jidouka/n/nb58dbe2857c8
使用技術
言語: Python 3.10+
ライブラリ:
- requests, BeautifulSoup4, lxml(スクレイピング)
- pandas, openpyxl(データ処理・Excel出力)
- Tkinter(GUI)
プラットフォーム: Windows
制作を通じて学んだこと
技術面
- Pythonでのスクレイピングの基礎
- Xpathを使った要素指定の正確性
- Tkinterを使ったGUIアプリ開発
- 非同期処理とプログレス表示の実装
設計・公開面
- 「使う人」を想定した画面設計の重要性
- READMEやドキュメントの書き方
- GitHubでの公開とバージョン管理
まとめ
このアプリは、「Pythonで実用的なツールを作る」という学習目標から生まれました。
作って終わりではなく、公開して誰かに使ってもらえる形にすることで、 初めて「実績」になると考えています。
同じように業務自動化やPythonを学んでいる方の参考になれば嬉しいです。


コメント