ヤフオク 終了したオークションの再出品ツール作成メモ Selenium編

< 目的 >

落札者のありなしに関わらず、自動再出品の回数も消化して終了となったオークションの再出品を行う。
管理は社内PCに限りたいとのことで、クラウド型の管理ツールは使用不可。
「○○にて出品」といったようなツール名称が入るのもNGの理由らしい。
APIの提供は2018年2月で終了している。そもそも出品関連のAPIはなかった模様。

 

< 必要なもの >

・ヤフオクとのストア契約
・Yahoo!IDとパスワード

 

< 手順概要 >

APIの提供がないので若干力業的なところあり。

「マイ・オークション」の「出品終了分」内「落札者あり」または「落札者なし」のページを開く
ログインページに遷移してしまったらログインする
「落札者あり/なし」のHTMLを取得
オークションIDやリンク、タイトル、再出品ボタンのリンク先URLを収集
再出品ボタンのリンク先URLに移動して再出品処理

 

< 詳細 >

VisualStudioの該当プロジェクトに対するSelenium.WebDriverの導入は済んでいて、ブラウザごとのドライバはプログラム本体がある場所に SeleniumDriver というフォルダを作りそこに保存する、という前提。

 

もしログインされていない場合やセッションが切れていたりするとログイン画面に飛ばされるので、その際にはログインする。
ただし、状況によっては画像認証が必要となることがあるため、そのページでは60秒間待つ。
その間に手動で画像認証を行う。

 

落札者あり/なしのページが開いたらHTMLを取得し、必要な情報を収集する。

※ここではオークションIDしか取得していないけど、本来はURLなども対象。

 

再出品ボタンのURLに遷移して出品処理を行う。

尚、終了時間や自動再出品の回数などを再設定したいという要望もあったので、そのような作業も含めている。
aucEndTimeStringやautoReUpNumが該当するが、再出品に当たって共通して他にも再設定したい項目などがあればここで作業。

 

ところで、こうした自動化について回るのは「クリックしたい要素が出ていないのに処理が先に進んでしまい思う通りの動作をしない」ということがある。

今回もIEでは問題ないけどChromeだとそうした状況が発生した。

そこで、ドライバのインスタンスに対して下記のような設定を行うとタイムアウトまでの時間を変更できる。(デフォルトでは0だったような・・・)