メルカリ管理画面が変更になったため、現在このツールは使用不可となっております。そのため、メルカリに関するお問い合わせは受付停止しております。
自動で価格変更や再出品方法をご紹介しています。
それとメルカリに出品しているデータを吸い出して表で管理できます。
iMacrosというブラウザ上の作業を自動化できる無料ツールを使って作成しています。
プログラムをすべて公開していますので、ご自分の使用用途に合わせてカスタマイズして頂くことも可能です。
ノーノちゃん
テイくん
このページの目次
1. 必ず最初にお読みください
メルカリ作業を自動化する方法は、サーバー型とデスクトップ型の2種類あります。
※iMacrosはデスクトップ型です。
サーバー型とは?
直接ご自分のPCやスマホなどから情報を送るのではなく、中間にあるサーバー(ツール)を経由してメルカリに情報を送ります。
この方法は、使うユーザー数が増えるほど同じIPアドレス(住所)から何度も出品したり削除したりしていることが分かります。
そのため、サーバー型ツールを利用していた人はアカウント停止処分を受けました。
現在、サーバー型で使用できるツールはありません。今後も出てこないと考えられます。
※2020/02/25時点
デスクトップ型とは?
上記の図のようにサーバー型とは違い、同じIPアドレスからでなく個々のIPアドレスから情報を送るのでツールを使ってると判断されにくくなります。
ただ、iMacrosで自動化する方法はデスクトップ型ですが100%大丈夫というお話ではありません。
今後メルカリ側のセキュリティが強化された場合、アカウントが停止になる可能性があります。
詳しく知りたい方はこちら記事が参考になると思います。
参考
メルカリの圏外飛ばしされる出品数や再出品の基準や頻度について物販NAVI
2. サポートについて
個別サポートは行っておりません。
不具合については「自動ツール不具合報告フォーム」からお願い致します。
個別に返信は行っておりませんが、解決できた場合は次の項目の「3. 更新履歴」にてご報告さして頂きます。
それと冒頭でもお伝えしましたが、プログラムの中身をすべて公開していますので、ご自分で修正や機能を追加して頂くことも可能です。
3. 更新履歴
修正や機能追加の履歴をこちらに記載しています。
ツイッター(@teilab_net_tei)でも更新情報を発信しています。
- 【出品中のデータを抜き出す用】マクロが途中で止まり商品が取得できなかった現象を解決
追加コード:// -------------------------------------------------
~以下省略~
// データ取得ページに正確に移動するか確認
// -------------------------------------------------
} else {
confirmLoop: for (var confirmLoop = 0; confirmLoop < 3 ; confirmLoop++){ // 取得エラーが起きる可能性があるので3回まで確認する
- 【出品中のデータを抜き出す用】Macに対応
追加コード://=================================================================
~以下省略~
// フォルダ、ファイルパスの準備(OS判定含む)
//=================================================================
var os = window.navigator.userAgent.toLowerCase(); // 使用端末のOS情報を取得
- 【出品中のデータを抜き出す用】終了時に合計取得数を表示
修正前:macroEnd += "PROMPT 出品中データを取得しました!<br><br>※データは以下の場所に保存されています。<br>{{!FOLDER_DATASOURCE}}\\メルカリ\\01_mercari_date.csv<SP>" + "\n";
修正後:macro += "PROMPT 合計"+total+"個の出品中データを取得しました!<br><br>※データは以下の場所に保存されています。<br>"+mercariDateCsvFilePath+"<SP>" + "\n";
- 【出品中のデータを抜き出す用】終了時に自動でファイルを開く設定に変更
追加コード:macro += "URL GOTO=file:"+mercariDateCsvFilePath + "\n"; //ファイルを開く
- 【出品中のデータを抜き出す用】左下のウインドウに現在の取得数をリアルタイムで表示
追加コード:iimDisplay( outLoop * 50 + inLoop + '個目の商品情報を取得しました!'); // 現在の取得数をディスプレイに表示
- 【出品中のデータを抜き出す用】修正に時間が掛かるため個別のmacro名を全て削除
- 【出品中のデータを抜き出す用】細かいプログラムの簡略化
- 【再出品時】サイズがないカテゴリーの場合ブランド名を入力できない問題を解決
修正前:macro += "EVENTS TYPE=KEYPRESS SELECTOR=HTML>BODY>DIV>DIV>DIV:nth-of-type(2)>DIV>FORM>DIV:nth-of-type(4)>DIV:nth-of-type(3)>DIV>DIV:nth-of-type(2)>DIV>INPUT CHARS={{!COL10}}" + "\n";
macro += "TAG POS=1 TYPE=LI ATTR=ID:*" + "\n";
修正後:macro += "TAG POS=1 TYPE=LABEL ATTR=TXT:ブランド*" + "\n";
macro += "TAG POS=R1 TYPE=INPUT:TEXT FORM=ACTION:# ATTR=NAME:brandName CONTENT={{!COL10}}" + "\n";
※NAMEにbrandNameが追加されたことによってEVENTSコマンドを使わずに入力が可能となりました。
- 【再出品時】カテゴリー2のキッズ服「(男女兼用) 100cm~」「(男の子用) 100cm~」「(女の子用) 100cm~」を選べない問題を解決
修正前:macro += "SET CATEGORY_2 EVAL(\"'{{!COL7}}'.replace(/(.*?)~.*/g,'$1');\")" + "\n"
修正後:macro += "SET CATEGORY_2 EVAL(\"'{{!COL7}}'.replace(/(.*?)用\\).*/g,'$1用)');\")" + "\n";
※現在キッズ、ベビー服だけ半角空白があるのでカテゴリーが増えた場合、今回のようなエラーが起きる可能性あり。 - 「setting.iim」ファイルの設定をデバッグ(テスト)用に、【再出品】の速度を高速にしていたためデフォルトに変更しました。
- 【再出品時】カテゴリー2のベビー服の「(女の子用)~95cm」「(男の子用)~95cm」「(男女兼用)~95cm」を選べない問題を解決
修正前:macro += "TAG POS=R1 TYPE=SELECT FORM=* ATTR=NAME:* CONTENT=${{!COL8}}" + "\n";
修正後:macro += "SET CATEGORY_2 EVAL(\"'{{!COL7}}'.replace(/(.*?)~.*/g,'$1');\")" + "\n"
macro += "TAG POS=R1 TYPE=SELECT FORM=* ATTR=NAME:* CONTENT=${{CATEGORY_2}}*" + "\n"; // カテゴリー2個目; - 【再出品時】商品名の入力のプログラム簡略化
修正前:macro += "EVENTS TYPE=KEYPRESS SELECTOR=HTML>BODY>DIV>DIV>DIV:nth-of-type(2)>DIV>FORM>DIV:nth-of-type(3)>DIV>DIV>DIV:nth-of-type(2)>DIV>INPUT CHARS={{!COL4}}" + "\n";
修正後:macro += "TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:# ATTR=NAME:name CONTENT={{!COL4}}" + "\n";
- 【再出品時】商品の説明で勝手に改行がはいる現象を解決
修正前:macro += "EVENTS TYPE=KEYPRESS SELECTOR=HTML>BODY>DIV>DIV>DIV:nth-of-type(2)>DIV>FORM>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV>TEXTAREA CHARS={{!COL5}}" + "\n";
修正後:macro += "TAG POS=1 TYPE=TEXTAREA FORM=ACTION:# ATTR=NAME:description CONTENT={{!COL5}}" + "\n";
- バージョン情報をプログラム内最上部に書き込みに変更したため「ver〇〇.iim」ファイルを削除。
- 「01_mercari_date.js」で51個目以降の商品が取得できない現象を解決
読み込む順を以下のように変更
修正前:jsエリア【macroEnd】→【macroNext】
修正後:jsエリア【macroNext】→【macroEnd】 - バージョン情報を確認できる「ver2.0.2.iim」ファイルを追加
- 「setting.iim」内の乱数部分を修正
修正前:("Math.floor(Math.random()*{{MAX}} + {{MIN}});")
修正後:("Math.floor(Math.random() * ({{MAX}} - {{MIN}} + 1)) + {{MIN}};")
- 「setting.iim」にて待ち時間をランダムに設定できるよう変更
- 「setting.iim」にて待ち時間をランダムに設定できるよう変更
- フォームIDが変更になりErrorが発生していましたが解決
- 「02_price.js」と「03_relist.js」の結果ファイルを自動で開くように改変
URL GOTO=file:{{!FOLDER_DATASOURCE}…;
- フォルダパス設定なしで使用できるように変更
var foldername = "result";
imns.FIO.makeDirectory(imns.Pref.getFilePref('defdatapath').path+…; - プログラムの簡略化
4. 動作環境について
メルカリT-LABツールを使うためにソフトをダウンロード(追加)する必要があります。
- iMacros 旧バージョン(8.9.7)
- Firefox(52.9.0ESR or 49.0.2)
※49.0.2はメモリが無限に増加する可能性があるので非推奨です。 - SmoothCSV
※Excelでも可能ですが編集するとデータが使えなくなる可能性があるので非推奨です。
上記の導入方法はこちらで説明しています(設定時間は約1分)
iMacrosに必要なFirefox、SmoothCSVの導入方法と初期設定(保存版)【PART.1】
もうすでにiMacrosを使っていても、最新バージョン(無料版)では機能制限があり動きませんのでダウングレードする必要があります。
詳しく知りたい方は「iMacros:無料版と有料版の違いを解説」の記事でご確認して頂ければと思います。
5. メルカリT-LABツールの設置方法
難しい設定はありませんが念の為動画を作成しました。
※動画は約1分です。
6. メルカリT-LABツールの使い方
まずは、各ファイルの役割を確認しましょう。
ファイル名 | 役割 |
---|---|
01_mercari_date.js | 出品中のデータを抜き出す用 |
02_price.js | 価格を変更する用 |
03_relist.js | 再出品する用 |
setting.iim | ランダム待機時間を変更する用 |
出品中のデータを抜き出す用
ファイル名:01_mercari_date.js
※動画は約2分です。
価格を変更する用
ファイル名:02_price.js
※動画は約3分です。
再出品する用
ファイル名:03_relist.js
※動画は約3分です。
ランダム待機時間を変更する用
ファイル名:setting.iim
※動画は約1分です。
少しでも作業効率を上げる方法
ファイルを探しに行く手間が省けます。
動画の中で毎回ドラッグ&ドロップして、CSVファイルをSmoothCSVで開いています。
実は「アプリケーションと拡張子の関連付け」をすれば次回からこの作業がいらなくなります。
全てのCSVファイルを関連付けされると困るという方は「②特定のCSVファイルのみ」の設定できる方法を試して頂ければと思います。
7. よくある質問
エラーについて
記事内でもお伝えしていますが、Excelを使って編集すると文字コードが変わりこの現象が起きます。
解決方法:再度データを取得して、ファイルを編集するときに「SmoothCSV」を使って頂ければ大丈夫です。
記事内でもお伝えしていますが、Excelを使って編集すると文字コードが変わりこの現象が起きます。
解決方法:再度データを取得して、ファイルを編集するときに「SmoothCSV」を使って頂ければ大丈夫です。
まずは、最新バージョンのプログラムをダウンロードして試してみてください。もし解決できない場合は「2. サポートについて」をご確認して頂ければと思います
もし数値を変更してもできない場合は、フォルダ位置やファイル名を変えたりしている可能性があります。
一度すべてのファイルを削除して再度「5. メルカリT-LABツールの設置方法」からやり直してみてください。
解決方法:画像の通りPlayを押せばOKです。
上記の設定を一度すれば次回からは表示されません。
余談ですがこのようなメッセージはダイアログと呼ばれています。
解凍の仕方によってmercari内にmercariを生成する場合があります。
そうするとフォルダの位置関係がずれるため、抜き出したデータ(CSVファイル)を使用できなくなります。
解決方法は下記のようにmercariのすぐ下に各ファイルを配置してください。
そのため解決するか分かりませんが、以下の方法を試していただければと思います。
解決方法:画像導入部分のプログラムを改変してマクロを低速に変更する。
★変更前
//「出品画像」を挿入
macro += "SET IMG_FOLDER {{!FOLDER_DATASOURCE}}\\メルカリ\\img" + "\n"; //長いので「imgフォルダパス」の変数を設定
macro += "SET !TIMEOUT_PAGE 2" + "\n"; //遅延対策
macro += "SET !REPLAYSPEED MEDIUM" + "\n"; //速度調節
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_1.jpg" + "\n"; //1個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_2.jpg" + "\n"; //2個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_3.jpg" + "\n"; //3個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_4.jpg" + "\n"; //4個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_5.jpg" + "\n"; //5個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_6.jpg" + "\n"; //6個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_7.jpg" + "\n"; //7個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_8.jpg" + "\n"; //8個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_9.jpg" + "\n"; //9個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_10.jpg" + "\n"; //10個目
macro += "TAG POS=1 TYPE=A ATTR=TXT:編集" + "\n";
macro += "TAG POS=1 TYPE=A ATTR=TXT:完了" + "\n";
★変更後
//「出品画像」を挿入
macro += "SET IMG_FOLDER {{!FOLDER_DATASOURCE}}\\メルカリ\\img" + "\n"; //長いので「imgフォルダパス」の変数を設定
macro += "SET !TIMEOUT_PAGE 4" + "\n"; //遅延対策
macro += "SET !REPLAYSPEED SLOW" + "\n"; //速度調節
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_1.jpg" + "\n"; //1個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_2.jpg" + "\n"; //2個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_3.jpg" + "\n"; //3個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_4.jpg" + "\n"; //4個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_5.jpg" + "\n"; //5個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_6.jpg" + "\n"; //6個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_7.jpg" + "\n"; //7個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_8.jpg" + "\n"; //8個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_9.jpg" + "\n"; //9個目
macro += "TAG POS=1 TYPE=INPUT:FILE FORM=* ATTR=NAME:* CONTENT={{IMG_FOLDER}}\\{{!COL2}}_10.jpg" + "\n"; //10個目
macro += "SET !REPLAYSPEED MEDIUM" + "\n"; //速度調節
macro += "TAG POS=1 TYPE=A ATTR=TXT:編集" + "\n";
macro += "TAG POS=1 TYPE=A ATTR=TXT:完了" + "\n";
参考動画⇩
使い方
心配な方はできるだけ少ない数にしておきましょう。
価格変更や再出品したい商品を一番上に持っていけば可能です。
下記の動画は「テスト」という商品の価格変更や再出品したい場合の例です。
詳しくはこちらで解説しています。
iMacros:任意の日時で自動起動する方法(タスクスケジューラ)
その他
今後メルカリのセキュリティーが強化されて使えなくなる可能性があります。
まずはこちらの記事を参考にして頂ければと思います。
iMacrosの使い方:初心者向けに解説!(図解、動画あり)【PART.2】
2021/07/15 出品中のデータを抜き出す用(01_mercari_date.js)のみMacに対応させました!
他のプログラムも改変中ですのでしばらくお待ち下さいm(__)m
それまでは以下の方法で対応お願いします!
改変する場所はファイルのパスの部分です。
・Windowsは\
(スラッシュ)
・Macは/
(バックスラッシュ)
WindowsとMacはファイルパスの表記が違います。
// Windows
macro += "SET !DATASOURCE {{!FOLDER_DATASOURCE}}\\メルカリ\\01_mercari_date.csv" + "\n";
// Mac
macro += "SET !DATASOURCE {{!FOLDER_DATASOURCE}}\/メルカリ\/01_mercari_date.csv" + "\n";
8. 各マクロの中身(勉強用)
各プログラムの下に作成の注意点や解説が確認できます。
iMacrosを1から勉強してみたい方や初心者の方はこちら
ブラウザ上の作業を全て自動化できるiMacrosとは?【PART.0】
ユーザーが入力したnum値を
if (outLoop * 50 + inLoop > num || check === "#EANF#")
の条件分岐で使用。多重ループを使っている理由は、51回毎に次へ(pager-next
)をクリックした後breakで1からカウントさせるためです。もしループだけで書くとbreakした時点でマクロが止まってしまいます
■画像があるかチェックの部分
for (var imgLoop = 1; ; imgLoop++)
は必要ないように思えますがONDOWNLOAD FOLDERでフォルダを変更してCONTENT=EVENT:SAVEITEM
で画像を抜き出す場合のみ、Error回避入れていてもiMacros8.9.7の不具合でマクロが止まる可能性があります。そのためこの処理が必要になります。
■フォルダ、ファイルパスの準備(OS判定含む)
まずはじめにvar os = window.navigator.userAgent.toLowerCase();
で端末のOS情報を取得します。ディレクトリはMacの場合(/)WINの場合(\)に別々にファイルパスを作成します。エスケープ(\)はJavaScriptで書く場合必須です。
それとvar mercariDateCsvFilePath = str.replace(/ /g, '<SP>')
はreplace関数を使って空白の場合は<SP>に置き換えます。imacrosは空白を認識しないのでどの場所に使ってもエラーが起きます。これは必ず覚えておきましょう!!
■データ取得ページに正確に移動するか確認
複数の関数を使って処理をするため凄く難しい場所です。2021年7月頃から出品中ページで個別の商品クリックすると、通常はhttps://www.mercari.com/jp/mypage/items/m(商品ID)のページが表示されますがhttps://www.mercari.com/jp/mypage/のページに移動することがあります。例えば12、51、80、254回目などランダムでこの現象が発生するため通常の方法では回避できません。
回避方法は、macro += "EVENT TYPE=CLICK SELECTOR=HTML>BODY>DIV>MAIN>DIV>SECTION>DIV:nth-of-type(2)>UL>LI:nth-of-type("+inLoop+")>A BUTTON=0 MODIFIERS=ctrl" + "\n";
で個別商品ページに移動した後そのページのURLを抜き出して、もしURLにitemsが入っていれば商品情報を取得、URLにitemsがなければcontinue;
を使ってconfirmLoop: for (var confirmLoop = 0; confirmLoop < 3 ; confirmLoop++)
に戻って再取得するようにします。基本的に2回目で商品ページにちゃんと移動しますが念の為3回ループするように設定しています。
補足:confirmLoop:
のラベルをつけていますが、これはなくてもOKです。最初はbreak confirmLoop:で作成していましたがcontinue;
でスキップした方が楽なので変更しました。次のアップデートで削除予定です。
- セット(iimSet)した変数は一度Macroを動かすと初期化されます。次のMacroで同じ変数を使う場合でも再度セットする必要があります。
- JavaScriptの変数をそのままiMacrosで使う場合もセットする必要があります。ただしiMacrosより上に変数を定義した場合は例外です。
青色:コマンド解説(リンク)
- setting.iimを作成した理由は、少しでもユーザビリティーを上げるためです。自分一人で使う場合は各ファイル(.js)に直接書き込みますが、プログラムに詳しく無い方が編集すると間違える可能性がありますので、編集する場所を一箇所に集約しています。
- SET(MIN MAX)を定義する理由も上記と同様です。
- 各ファイル(.js)で iimPlay(“mercari/setting”)を使ってsetting.iimを動かしvar rand = iimGetExtract()で吸い出した値をランダム待ち時間に使っています。
9. まとめ
メルカリの再出品や価格変更を自動化する方法をご紹介しました。
ただ、自動化できて簡単だからと言って過度に使用するのは控えましょう。
アカウント停止や圏外飛ばしになる確率が高まりますので注意が必要です。
- Firefox、iMacrosのダウングレードが必要
- 各ファイル毎に役割が分かれている
- 個別サポートはなし
- 1日の使用頻度に要注意