Python Python 活用 プログラミング

【python できること】seleniumを使って自動化!Yahooオークション自動出品する方法!

yahoo auction auto

 

pythonでできることの1つが自動化です。

今回はYahooオークションの出品の自動化を紹介していきます。

 

本記事はこんな方におすすめです。

hituji
pythonのウェブ操作自動化を参考にしたい

Yahooオークションの出品を自動化したい

 

本記事の内容

  • seleniumについて
  • chromeドライバーのダウンロード
  • 必要なライブラリ
  • 実装

 

この記事を読むと、Yahooオークションの自動化ができます!

もちろん、ウェブ操作の自動化がわかります。

こんな感じで、1千万の写真(フリー素材)の出品を自動で処理します。

 

サンプルコード

 

python embeddable の環境もセットの場合は、次のリンクを参照ください。

>> python embeddable含むコード

 

スポンサーリンク

seleniumについて

seleniumはウェブ操作を自動化するライブラリです。

>> selenium公式

 

pythonだけでなく、java,ruby,C#,java scriptなどにも対応しております。

 

ウェブ操作を自動化とは

ウェブ操作の自動化とはどういうことでしょうか?

皆さんは、ウェブブラウザのテキストボタンに対して、入力押すと操作します。

これをpython(プログラム)で行うことです。

 

yahoo auction 1

 

プログラムですることは、ボタンなどの「要素」を指定して、「操作」します。

とても、シンプルです!!

 

インストール

pythonの環境にpipでインストールしましょう。

 

 

chrome driver

今回操作するブラウザはGoogle Chromeを使います。

インストールがまだな方は、インストールしてください。

>> Google Chrome ダウンロード

 

Chromeのバージョン確認

Chromeのバージョンを確認します。

次のchrome driverのダウンロードで必要になります。

Chromeを起動したら、右上のチョボ3つを押して、設定を開きます。

 

Chromeについてから、バージョンを確認しましょう。

 

次は、chrome driverです。先程のとは別です。

pythonのプログラムで読み込むものです。

ダウンロード

下記リンクよりchrome driverをダウンロードしてください。

>> chrome driverダウンロードサイト

現状のChromeのバージョンに対応したものを選択してください。

yahoo auction 4

 

OSにあったものをダウンロードしてください。

yahoo auction 5

 

実装方法

では、早速実装して行きましょう。

 

準備

サンプルコードのように、コードファイルや商品画像、Chrome driverを配置します。

>> サンプルコード

 

 

コードのファイルはダウンロードすれば、中にコードが書いてあります。

空のファイルを用意して、記事読みながら、コード書いてもらってもOKです。

 

要素の取得

要素がわからないと、プログラムが書けないので、まず要素の取得方法から紹介します。

ブラウザを開いたら、チョボ三つ>その他ツール>デベロッパーツールを選びます。

yahoo auction 8

 

右に開発用の画面が出てきます。

エレメント選択ボタンを押したあと、操作したい要素をクリックします。

すると開発画面の文字がハイライトされます。

これが、テキストやボタンの要素のコードです。

ここのid = ""、name=""、class=""などを参考にします。

yahoo auction 9

 

xpathというもので、要素を指定することもあります。

その場合は、ハイライトした要素を右クリックして、CopyからXpath、full Xpathを選びます。

yahoo auction 10

 

注意ポイント

要素は自分で探せるようにしておいてください。

ウェブでは、アプリケーション更新とかで、要素名が変わることがあります。

 

pythonでの要素の読み込み

上記で要素がわかれば、あとは、pythonでその要素を指定します。

要素の指定は公式のリンクを参照ください。

>> 公式リンク

 

3つだけ、紹介しておきます。

メソッド 機能
find_element_by_id idを指定して要素を取得。
find_element_by_xpath xpathを指定して要素を取得。xpathでもfull xpathでも良い。
find_element_by_name nameを指定して要素を取得。

それぞれ、メソッド名のままですね。

 

実際のコードで、idで要素を指定する場合は、次のようになります。

*driverはchrome driverを読み込んだオブジェクトです。

 

 

操作の種類

操作の種類は、基本的に人がする操作と同じです。

操作はクリック、入力、選択の3つを紹介します。

メソッド 機能
click() クリック
clear() 入力をクリア
send_key('文字') テキスト入力
Selectクラスのselect_by_visible_text('選択する文字') 文字から、select要素の選択
Selectクラスのselect_by_index(選択するindex no) indexから、select要素の選択

 

実際のコードは次のようになります。

 

id要素を指定して、クリックしています。

 

次のように、1行にしてもOKです。

本記事では、1行を採用しています。

 

ここまでできたら、あとは、ひたすらウェブの操作を実装します。

ライブラリ読み込み

まずは、必要なseleniumのライブラリを読み込みます。

 

driverの読み込みや、select要素の選択のためのライブラリです。

 

設定、出品情報

設定と出品情報を定義します。

設定

user、passwordはyahooのものを入れます。

 

出品情報

商品画像や、商品名を定義しています。

 

Chrome起動と終了

まず、Chromeの起動と終了のコードを用意します。

chrome driverをoptionを使って、起動して、urlを開きます。

 

そして、閉じます。

 

この2つ間に操作の処理を追加して行きます。

 

ログイン

ログインをします。

ユーザー名入力

 

パスワード入力

 

一旦動かしてみましょう!

ログインできればOKです。

 

処理が安定しない場合は、sleepで数秒のウェイトを入れましょう。

 

ポップアップの削除

ログインすると、ポップアップが出てくるので、これは消します。

これはjavascriptで要素を直接非表示にします。

javascriptの実行はexecute_scriptメソッドを使います。

 

そのまま、javascriptのコードを渡せばOKです。

 

商品画像貼り付け

出品画像を貼り付けます。

ローカルに置いてある、product.pngを2回貼ります。

 

タイトル

出品タイトルを設定します。

 

カテゴリ

カテゴリを設定します。

ここはわかりにくいですが、カテゴリごとにあるIDを確認します。

 

このカテゴリのIDを隠れ要素のname='category'の値に設定します。

 

execute_scriptメソッドで、要素と要素の操作をjavascriptで渡しています。

その他の、出品カテゴリのIDはデベロッパーツールで確認してください。

 

商品の状態

商品の状態を設定します。

今回はselect要素なので、Selectクラスを使います。

 

返品

ここもわかりにくいです。

チェックボックスを押すと、labelのclassに「is-check」が追加されたり、消えたりします。

 

 

ここでは、labelの要素をクリックします。

labelのXpathは「/html/body/form/div/div[13]/label

これに、is-checkがあるかどうかで「[not(contains(@class, "is-check"))]

を足したものが要素となります。

 

ポイント

単純にidを指定しても、動かない時は色々調べながら、動く要素を探します。

 

商品説明

ここもわかりにくいです。

iFrameがある場合は、一旦そちらに切り替えてから、中の要素を指定します。

 

driver.switch_to.frameでフレームに切り替えます。

処理が終われば、driver.switch_to.default_contentで戻します。

 

発送元の地域

発送元の地域を指定

 

配送方法

配送方法の設定はいくつかありますが、ネコポスの設定だけします。

 

違う配送方法にしたい場合は、Xpathを調べて、変更してみてください。

 

発送までの日数

こちらも全部せずに、2-3日のみ実装します。

 

こちらも他の日数にするときは、Xpathを調べて、要素に指定してください。

 

終了日時

終了日時を設定します。

select要素のindex noで設定しています。

日付であれば、0=1日後、1=2日後,,,という感じになります。

 

開始価格

開始価格は一旦テキストをクリアしてから、設定します。

 

確認ボタン

最後に、確認ボタンを押します。

 

出品ボタン

画面が遷移して、確認画面が出ます。

ここまで出れば、この記事は終了です。

お疲れ様でした。

 

どうでしょう?ウェブの自動化について紹介しました。

毎日毎日、同じウェブ操作をしていませんか?

そんな作業は自動化してしまって、人生の時間を空けて行きましょう!

 

他の活用方法は「python 活用 できることまとめ」も参考にしてください。

>> python 活用 できることまとめ

Pythonスキルが身に付いたら、ぜひスキルを生かして稼いでいきましょう!

>> Pythonでの副業の始め方紹介【隙間時間 で可能】

-Python, Python 活用, プログラミング

© 2021 ひつじ工房