ショッピーズへの出品を自動化するVBAプログラムを組んでみる①


今回はショッピーズ(SHOPPIES)と呼ばれる、女性向け専門のファッション系フリマサイトを操作し、出品を自動化できる様なVBAプログラムを組んでみたいと思います。

【対象サイト】
ショッピーズ(SHOPPIES)「https://shoppies.jp/」

ただ今回一つ問題があって・・・

実はこのショッピーズに関してはプログラムの試作もまだ行っていないんです。

今まで紹介したメルカリ、ラクマ、フリル等のプログラムに関しては、事前に出品までできる事を確認した上で紹介していたのですが、今回は最終的に全て自動化できるかどうかは分かりません!

という事で未完成のまま途中で終了する可能性もありますが・・・サイトの構成を見た感じ多分恐らくきっと大丈夫でしょう。

例え一部分だけしか自動化できなかったとしても、人によっては手動でやるより時間短縮になると思いますからね。

ということで早速一から処理を組んでいこうと思います!


スポンサーリンク

出品ページを開く

「一から」と書きましたが、過去に作った「現在開いているページを取得する処理」や「ページの読み込みが完了するまで待機する処理」なんかは以前作ったものをある程度そのまま使います。

それぞれの処理は以下の通り。

'==========================================================
'ドキュメントタイトル or URLを指定して起動中のIEを取得
'==========================================================
Public Function getRunningIE(title As String, Optional url As String) As InternetExplorer
    Dim ie As InternetExplorer      'IE格納
    Dim sh As Object                'shellオブジェクト格納
    Dim winObj As Object            'ウィンドウを格納
    Dim winObjName As String        'ウィンドウタイトルを格納
    Dim documentTitle As String     'ドキュメントタイトルを格納
    Set sh = CreateObject("Shell.Application")

    For Each winObj In sh.Windows
        On Error Resume Next
        winObjName = ""
        documentTitle = ""
        winObjName = winObj.FullName
        documentTitle = winObj.document.title
        On Error GoTo 0
        
        'IEウィンドウの判定
        If LCase(Right(winObjName, 12)) = "iexplore.exe" Then
            'URLが指定されていた場合はURLで確認
            If url <> "" Then
                If InStr(winObj.LocationURL, url) > 0 Then
                    Set ie = winObj
                    Exit For
                End If
            Else
                '指定したタイトルのIEかどうかを判定
                If InStr(documentTitle, title) > 0 Then
                    Set ie = winObj
                    Exit For
                End If
            End If
        End If
    Next
    Set getRunningIE = ie
End Function
'==========================================================
'IE画面待機処理
'==========================================================
Public Function waitBrowseLoading(ie As InternetExplorer) As InternetExplorer
    Dim bIeBusyFlag As Boolean
    Dim iIeReadyStateNumber As Integer

    Do
        bIeBusyFlag = False
        iIeReadyStateNumber = -1
        
        On Error Resume Next
        bIeBusyFlag = ie.Busy
        iIeReadyStateNumber = ie.readyState
        On Error GoTo 0

        Sleep 100
        DoEvents
    Loop While bIeBusyFlag Or iIeReadyStateNumber <> READYSTATE_COMPLETE
    
End Function

それぞれの処理の解説については以下の記事を参照下さい。

VBAでブラウザを操作して作業を自動化してみよう -ウェブスクレイピングツール編①-

商品ページからボタン一つで情報を取り込むVBAプログラムの作り方(Amazon編①)

起動中のIEを取得する処理に関しては、上記「Amazon編」で作った物にURL指定機能を追加しています。

ではまずはデータの入力先となる「出品ページ」を開く部分の処理を用意しますが、方法は二通りあります。

  1. IEを起動してショッピーズの出品ページを開く
  2. IEで起動中のショッピーズのページを取得して、出品ページを開く

どちらでも好きな方で構いませんが、「1」の場合はセッション情報が切れていた場合にログイン画面が表示されてしまい、ログイン画面の検知 or パスワードの自動入力処理を行うために余分に処理を追加しないといけなくなります。

ですので今回は「2」の方法で実装します。

前回Amazonの商品ページを取得する際は、『タイトルに”Amazon.co.jp”という単語が含まれるページ』といった条件で指定を行いましたが、ショッピーズに関しては以下の画像の様にタイトルにほとんど情報が含まれていません。

これだとタイトルで検索することができませんので、URLで検索します。

今回はドメインに「https://shoppies.jp/」が含まれるページを取得するという形で処理を記述します。

メインの処理はこんな感じですね。

'ショッピーズのドメイン
Const DOMAIN_SHOPPIES = "shoppies.jp/"
'ショッピーズの出品ページURL
Const URL_SHOPPIES_EXHIBIT = "https://shoppies.jp/write-item_sp"

'-----------------------------------------------------------------
'ショッピーズの出品ページにデータを自動入力させる処理
'-----------------------------------------------------------------
Sub main()
    Dim objIE As InternetExplorer

    Set objIE = getRunningIE("", DOMAIN_SHOPPIES)
    objIE.Navigate2 URL_SHOPPIES_EXHIBIT
    
End Sub

上記mainの処理を実行することで、ショッピーズ内のどのページを開いていても出品ページに遷移させられるはずです。

次からは実際に出品ページへ入力を行っていきます。

短いですが今回はこの辺で!

関連記事と広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする