見出し画像

Buyma自動出品ツール Python

Buymaで自動出品できるツールの案件をよく見かけたので試しに作ってみました。

今回の作成ではPythonとseleniumでスクレイピングを行い、管理画面で出品制限や間隔などをデータベースに保存し実行します。

GUIはtkinterを使用して
・メイン画面
・ログイン
・システム設定
を構築しています。

メイン画面ではCSVファイルを選択し出品処理の開始と停止を可能とし、設定タブでは出品制限や処理速度を入力し保存できるようにしました。

scheduleモジュールを使用し、定期実行もできるようになっています。

また、Seleniumを使用してCSVファイルから商品データを読み込み商品情報の入力、画像のアップロード、Buymaへのログイン処理を実装しておりログイン状態を保持するためにクッキー管理も行っております。

エラーハンドリングに関しても各エラーをキャッチしログに出力、エラー内容に関してUI上に表示されるように設定。

ディレクトリ構造のツリーはこちら

root/
│
├── cookies.pkl           # BUYMA用のクッキー情報を保存するファイル
├── config/                 # 設定ファイル用のディレクトリ
│   └── config.json         # アプリケーション設定ファイル(XPathやURL情報)
│
├── cookies/                # クッキー関連ファイルを保存するディレクトリ
│   └── buyma_cookies.pkl   # 保存されたBUYMAのクッキー情報
│
├── data/                   # データ関連の保存ディレクトリ
│   ├── db/                 # データベースファイルを保存
│   │   └── settings.db     # アプリケーション設定用のSQLiteデータベース
│   └── output/             # アウトプットデータ保存用ディレクトリ
│       └── logs/           # ログファイル用ディレクトリ
│           └── scraping.log # スクレイピングログファイル
│
├── main.py                 # アプリケーションのエントリーポイント
├── requirements.txt        # Pythonパッケージの依存関係リスト
│
└── src/                    # アプリケーションのコアコードディレクトリ
    ├── core/               # スクレイピングや主要ロジック
    │   └── scrape.py       # スクレイピング処理のメインコード
    │   
    │
    ├── utils/              # ユーティリティ関数やサポート機能
    │   ├── cookie_manager.py # クッキー管理用のコード
    │   ├── csv_handler.py    # CSVファイル操作用のコード
    │   └── logger.py         # ログ管理用のコード
    │
    └── ui/                 # UI関連のコード
        └── views.py        # ユーザーインターフェース用コード

機能一覧

  1. 自動出品
    実行方法:BUYMAアカウント情報(ユーザーID、パスワード)を指定し、出品モード(出品・下書き)とCSVファイルを選択して開始。
    設定:
    出品間隔:指定した最小・最大秒数の範囲内でランダムに間隔を決定。
    処理速度:ページ間遷移や情報入力の処理時間をランダムに設定。
    出品手順:
    CSVファイルに基づいて各商品情報を入力し、指定モードでの出品または下書きを行う。

  2. 設定保存機能
    設定情報:出品間隔、処理速度、日数制限等をデータベース(settings.db)に保存。
    保存・読み込み:設定内容はSQLite3で管理され、次回起動時に前回設定が適用される。

  3. 自動ログイン・Cookie管理
    ログイン:BUYMAにログインし、必要なクッキーを取得・保存。
    セッション確認:クッキーの有効期限切れが発生した場合、自動で再ログインして新しいクッキーを取得し保存。

  4. ログ管理
    ログ出力:ログファイル(app.log)に各実行結果やエラーメッセージを出力。エラー発生時にはGUI画面にも表示。
    実行ログ:商品出品時のステータス、エラー数、商品名を記録。

  5. 定期実行
    実行条件:指定した日数制限に基づいて出品実行。一定期間を超えると自動停止。
    ファイル詳細

main.py
アプリケーションのメインエントリーポイント。BUYMA自動出品ツールを起動し、定期実行スケジュールを設定。

views.py(UI設定)
CustomTkinterを利用したGUIの管理。
設定入力画面、ログイン画面、出品実行画面などのGUIコンポーネントを作成。

scrape.py(自動出品処理)
SeleniumによるBUYMAへのアクセスと、商品情報の自動入力機能を提供。
CSVファイルに基づき、出品または下書きを自動で行う。
ログインの維持・再ログイン処理を含む。

config.json(設定ファイル)
BUYMAサイト内での要素取得のためのXPath情報などを定義。

logger.py(ログ管理)
ログファイルへの記録と、実行状況をリアルタイムで追跡。

データベース
settings.db:アプリケーションの設定情報を保存。出品間隔、処理速度、日数制限などの設定内容を管理。

外部ファイル
requirements.txt
プロジェクトに必要なPythonパッケージリスト。pip install -r requirements.txtで一括インストールが可能。

このBUYMA自動出品ツールは、クライアントがBUYMAで商品を自動的に出品できるよう支援するためのツールです。ユーザーは、事前に指定したCSVファイルに基づいて商品情報を登録し、設定した間隔や処理速度でBUYMAサイトへの出品・下書きを自動で行います。

環境要件
プログラミング言語:Python 3.12.0
主要ライブラリ:
Selenium(Webブラウザの自動操作)
CustomTkinter(UI)
SQLite3(データベース管理)

実際のコードはこちらになります。

ここから先は

53,556字

¥ 980

期間限定!Amazon Payで支払うと抽選で
Amazonギフトカード5,000円分が当たる

この記事が気に入ったらチップで応援してみませんか?