得屋(FP2級 × AIエンジニアのブログ)

FP資格を持つAIエンジニアならではの、お得情報をお届けします

MENU

フリマアプリでの売却価格 おすすめの決め方

f:id:mycrofton:20201101120012p:plain

目次

はじめに

フリマアプリの値付けってどうしていますか?

メルカリやラクマ、PayPayフリマなど、フリマアプリって、不要になった物品を手軽に売却できたり、欲しいものを手ごろ値段で購入出来たりと、便利なシステムですよね。

ところで、そのフリマアプリを出品者(中古品を売却する人)として使う場合、悩む点ありませんか?

フリマアプリを使って、マンガや小説などの書籍、ゲーム機やゲームソフト、子供服や子どものおもちゃ、などなど、不要になった物品を売却する際、迷うのが値付けだと思います。

あまり高い値段をつけても売れないだろうし、とは言っても、安すぎる値段で売りたくもない…といった悩みありますよね。

売りたい物品が、実際に『いくらで売れたのか』をフリマアプリを使って検索して、売れた実績をもとに値付けされている方もいると思いますが、その値段が適切なのかは判断が難しいですよね。

たとえば、実績として見つけたものが1,000円だったとしても、実はもっと調べると大多数は2,000円で売買されているかもしれません。2,000円で売れるかもしれないものを1,000円で売ってしまったら、損した気分になり、ちょっと悲しいですよね。

また、フリマアプリによっては、出品時におすすめの価格帯を示してくれるものもありますが、その価格帯もどの程度信用できるかわかりません。(疑い深くてすみません…)

売れた値段の実績が、簡単にわかれば良いのでは?

では、どうすれば損した気分にならないかというと、フリマアプリで売れた実績が分かれば良さそうです。

たとえば、『売りたい物品が、いくらで、どのくらいの数が売れているか』が分かれば、とても役立つのではないでしょうか。

ヒストグラムを使えば、簡単に売れ筋の価格帯が分かります

このような情報をヒストグラムというグラフで表現することが可能です。以下は、『PlayStation4の初期型本体』が、フリマアプリのメルカリで、どのような価格で、どの程度売買されたかを示すヒストグラムです。

横軸が売買価格、縦軸が売買数になっています。

f:id:mycrofton:20201101101031p:plain

青い棒が高い部分が、多く売れた価格を示しています。高い青い棒が多く固まっている部分が、よく売れた価格帯を示しています。たとえば、上のヒストグラムでは、10,000円弱での売買数がとても多いですね。それ以外だと、20,000円弱程度の価格帯も売れているようです。

f:id:mycrofton:20201101101332p:plain

なお、グラフ上部にある、『mean』と『median』はそれぞれ、売買価格の『平均値』と『中央値』を示しています。したがって、PlayStation4の初期型本体は、だいたい1万円前後で売買されていることが多そうです。

f:id:mycrofton:20201101101649p:plain

いかがでしょうか。上記のような情報が簡単に手に入れば、フリマアプリに出品する際の価格設定の参考になるのではないでしょうか。

「確かにヒストグラムがあれば便利そうだけど、そんな情報、どうやって手に入れるんだ?」

という方、安心してください。本ブログでは、このヒストグラムの情報を簡単に作る方法を紹介したいと思います。

フリマアプリの売買実績ヒストグラムを作成する

早速、フリマアプリの売買実績をヒストグラムとして作成する方法について紹介していきたいと思います。

ヒストグラムの作成には、pythonと呼ばれるプログラミング言語を使って、プログラムを作っていきます。プログラムと聞くと、難しそうで抵抗がある方もいると思いますが、本ブログでは、プログラムの知識がなくても大丈夫なように、プログラムのコードなどを使える状態で紹介していますので、心配しないでください。

また、対象としているのは、あまりプログラムの知識がない方になります。プログラムに詳しい方にとっては、冗長な説明だったり、正確ではないと感じる表現も含まれるかもしれませんが、なるべく平易な表現で説明しようとした結果ですので、ご容赦ください。

プログラムの実行環境の準備をする

プログラムを動かすためには、プログラムの実行環境と呼ばれるものを整備しなくてはいけません。

ここで準備するのは、pythonと呼ばれるプログラミング言語の実行環境になります。すでに、pythonの実行環境をお持ちの方は、本節は読み飛ばしていただいてかまいません。

pythonの実行環境をダウンロード

pythonの実行環境をインストールするために、まずは実行環境データをダウンロードする必要があります。

python実行環境データは、以下の公式ページから行うことができます。

https://www.python.org/

まずは、上記公式ページにアクセスしてください。

f:id:mycrofton:20200913093643p:plain

アクセスすると、上のような画面が表示されますので、画面上部の『Downloads』にマウスカーソルを合わせ、表示されたメニューから『Windows』を選択してください。(今回は、Windows向けの解説を行います。MacLinuxをお使いの方は、Web検索などを用いて、pythonの実行環境構築の方法を調べてみてください)

f:id:mycrofton:20200913094043p:plain

 

Windows』を選択すると、Windows向けpythonのページが表示されるので、画面上部のStable Releasesにある『Windows x86-64 executable installer』をクリックしてください。

f:id:mycrofton:20200913094440p:plain

すると、ダウンロードが開始されるので、好きな保存場所を選んで、保存してください。特に指定しなければ、『ダウンロード』フォルダに保存されているはずです。(Windows 10の場合)

f:id:mycrofton:20200913094759p:plain

pythonの実行環境をインストール

pythonの実行環境データのダウンロードが終わったら、インストール作業を行います。

ダウンロードしたファイルをダブルクリックしてください。上記の例では、『python-3.8.6rc1-amd64.exe』(設定によって、.exeが表示されない場合があります)をダブルクリックします。

ダブルクリックするとインストーラー(インストール用のアプリケーション)が起動します。

まず、インストーラーの画面に表示される『Add Python 3.8 to PATH』にチェックマークを入れてください。このチェックマークを忘れてしまうと、のちに作成するプログラムが正しく動作しない可能性がありますので、必ず実行するようにしてください。

その後、『Install Now』をクリックします。あとは、画面に従って画面右下の『Install』もしくは『Next』ボタンをクリックしていくだけです。

画面に、『Setup was successful』と表示されたら、インストールは正しく終了しています。最後に、画面右下の『Close』ボタンを押して、インストーラーを終了してください。

pythonの実行環境が正しくインストールされたか確認する

pythonの実行環境のインストールが終わったら、正しくインストールされたか念のため確認しましょう。

確認のためには、コマンドプロンプトと呼ばれるアプリケーションを使用します。

キーボードの[Windows]ボタン + [R]ボタンを押してください。すると、『ファイル名を指定して実行』という画面が表示されると思います。

f:id:mycrofton:20200913101006p:plain

『名前(O):』の入力ボックスに『cmd』と入力し [OK] ボタンをクリックしてください。コマンドプロントが起動し、以下のような画面が表示されると思います。

f:id:mycrofton:20200913101253p:plain

コマンドプロンプトが起動したら、『python --version』と入力してください(python --versionと入力後、Enterボタンを押します)。

Python 3.8.6 のように表示されたら正しくインストールされています。

f:id:mycrofton:20201101104428p:plain

もし、表示されないようであれば、正しくインストールされていない可能性があります。pythonの実行環境をアンインストール後、再度インストール手順に従って、インストールを試してください。

以上で、pythonプログラム環境の準備は完了です。

プログラミングする

プログラミング環境の準備が終わったので、次はプログラムを作成しましょう。

プログラミングに抵抗ある方もいると思いますが、冒頭でも記載した通り、必要な情報はすべて記載しますので、プログラムの知識は不要です。

プログラムファイルの作成

まずは、プログラムを記載するためのファイルを作成します。文書を作成するためのWordファイルを作成するのと同じようなものです。

ファイル作成の前に、作成したファイルを置いておくためのフォルダを作ってください。好きな名前のフォルダで構いません。

ここでは、例として『c:\work\fleamarket』というフォルダを作成します。以降の説明では、ここで作成したフォルダを作業フォルダと呼んでいきます。

フォルダを作成した後は、作成した作業フォルダにプログラムを記載するためのファイルを作成します。こちらも好きなファイル名で問題ありません。たとえば、『histmaker.py』とファイル名を付けます。

(ここで注意ですが、最後の『.py』は必ずつけてください。また、『.exe』などが表示されていない場合は、設定を変更して表示されるようにしてから、ファイル名を付けるようにしてください)

プログラミング

プログラムファイルが作成できたら、右クリックし『Edit with IDLE』を選択してください。以下のようなプログラムを記述するためのアプリケーションが起動します。

f:id:mycrofton:20201101105446p:plain

次に、起動した画面に以下のコードをコピー&ペーストしてください。

import requests, bs4
import time
import numpy as np
import matplotlib.pyplot as plt

# 指定キーワードで出品検索を行い、売却済みのものから売却価格を取得する
# 取得した売却価格を使ってヒストグラムを作成する
def search_item():
    # キーワードを設定
    keyword = "PS4" + "+" + "本体" + "+" + "初期型" # "+"はキーワードをAND検索するための設定
    
    # 前準備
    nprice = np.empty(0)
    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
    url = "https://www.mercari.com/jp/search/?keyword=" + keyword
    page = 1 # ページ番号
    try:
        while True: # 次ページがなくなるまで繰り返す
            # 指定キーワードで出品検索
            res = requests.get(url, headers=headers)
            res.raise_for_status()
            soup = bs4.BeautifulSoup(res.text, features="html.parser")
            time.sleep(1)
            print("Searching page: " + str(page))

            # 出品物の情報のみをリストアップ
            elems_item = soup.select('.items-box')
            for item in elems_item:
                # 売却済みか判定し、売却されていない出品の場合は以降の処理をスキップ
                if item.find('div', class_='item-sold-out-badge') == None:
                    continue

                # 金額を取得
                price = item.find('div', class_='items-box-price').text
                # 金額文字列から予定なものを除外(\を消したい)
                price = price.replace("¥", "")
                price = price.replace(",", "")

                # ヒストグラムの対象として金額を追加
                nprice = np.append(nprice, int(price))

            # 次ページのURLを設定する
            url_next_page = soup.find('li', class_='pager-next').find('li', class_='pager-cell').find('a')['href']
            url = "https://www.mercari.com" + url_next_page
            page += 1
            #print(url)
            
    except:
        print("Search: done")

    # ヒストグラムを描画
    fig = plt.figure()
    ax = fig.add_subplot(1,1,1)
    ax.hist(nprice, bins=100)
    ax.set_xlabel("price")
    ax.set_ylabel("num")
    ax.text(0.0, 1.0, "mean: " + str(nprice.mean()) + ", median: " + str(np.median(nprice)), transform=ax.transAxes)
    fig.savefig("result.png")
    

####################
#main

# ヒストグラムを作成
search_item()

コピー&ペーストすると、以下のような画面になると思います。

f:id:mycrofton:20201101110410p:plain

コピー&ペーストが完了したら、上書き保存してください。

キーボードの[Ctrl]ボタン + [s]ボタンで上書きできます。

(または、アプリケーションメニューの『File』→『Save』でも上書き保存ができます)

以上でプログラミングは完了です。

ただし、上記のプログラムは、フリマアプリのメルカリで、PlayStation4 初期型本体の売買実績がある価格帯をヒストグラムとして生成するものです。

具体的には、メルカリで、『PS4』『初期型』『本体』と検索した結果から、売却済みの物品についている値段を探してきて、ヒストグラムとして表現するという処理を行っています。

プログラムを実行する

PlayStation4以外の物品についてヒストグラムを作成する方法については、後程紹介したいと思いますが、まずは、上記のプログラムが正しく動作するか確認してみましょう。

プログラムを動かしてみる

コマンドプロンプトを起動して、作業フォルダに移動します。作業フォルダに移動するためには、コマンドプロンプトを起動後、

『cd 作業フォルダ名』と入力します。たとえば、作業フォルダが『c:\work\fleamarket』である場合は、『cd c:\work\fleamarket』と入力してください。

f:id:mycrofton:20201101111151p:plain

その後、『python プログラムファイル名』と入力します。たとえば、プログラムファイル名が『histmaker.py』である場合、『python histmaker.py』と入力します。

f:id:mycrofton:20201101111705p:plain

これでプログラムが実行されるはずですが、いかがでしょうか。おそらく、上記のような変なメッセージが表示されていると思います。

実は、上記のプログラムを実行するためには、もう少し準備が必要になります。追加準備の手順も紹介していきますので、もう少しお付き合いください。

コマンドプロンプトで、『pip install bs4』と入力してください。

f:id:mycrofton:20201101111924p:plain

必要なデータの追加インストールが始まります。少し時間がかかるかもしれませんが、コマンドプロンプトに文字が入力できるようになるまで待ってください。

さらに、追加のインストールを行っていきます。『pip install requests』と入力してください。先ほどと同様にインストールが開始されます。同じように時間がかかるかもしれませんが、コマンドプロンプトに文字が入力できるようになるまで待ってください。

f:id:mycrofton:20201101112234p:plain

あと2つほど、追加のインストールがありますので、もう少しだけ頑張りましょう。

次は、『pip install numpy』と入力してください。諸注意は、上記の手順と同様のため割愛します。

f:id:mycrofton:20201101112537p:plain

次が最後の追加インストールです。『pip install matplotlib』と入力してください。少しスペルが長いですが、入力し間違えないよう注意してください。

f:id:mycrofton:20201101112736p:plain

追加準備は以上で終了になります。お疲れさまでした。

それでは、もう一度プログラムを実行してみましょう。『python histmaker.py』と入力します。(プログラムファイル名がhistmaker.pyでない方は、作成したプログラムファイル名をpythonの後に入力してください)

今度はうまく動くと思います。うまく動いている場合、コマンドプロンプトには、

『Searching page: 1』のような文字列が表示されます。もし、表示されていない場合は、正しく設定ができていない可能性がありますので、再度上記の説明を確認し、再設定をしてみてください。

プログラム実行結果を確認する

プログラムが実行できたので、プログラムの実行結果であるヒストグラムを確認してみましょう。

作成した作業フォルダを見てください。作業フォルダのなかに、『result.png』というファイルが作成されていると思います。これがヒストグラムファイルです。開いてみると、本ブログの冒頭でご紹介したようなヒストグラムの画像が見れると思います。

f:id:mycrofton:20201101113349p:plain

キーワードを変えて売買価格帯のデータを作成する

PlayStation4の売買実績データをヒストグラムとして取得することはできるようになりましたが、自分が売りたい物品についても、同じようなデータを作成したいですよね。

売りたい物品のデータを作成する場合は、プログラムファイルの以下の部分を書き換える必要があります。

 # キーワードを設定
    keyword = "PS4" + "+" + "本体" + "+" + "初期型" # "+"はキーワードをAND検索するための設定

上記文字列の"PS4"や"本体"や"初期型"という文字列が、メルカリの検索に使っているキーワードになります。したがって、この文字列を変更することで、好きな物品を検索対象として売買価格を取得、ヒストグラムにすることができます。

たとえば、PlayStation3の売買価格帯データが欲しい場合は、以下のようになります。

 # キーワードを設定
    keyword = "PS3" + "+" + "本体" + "+" + "初期型" # "+"はキーワードをAND検索するための設定

キーワードの間の"+"という文字は、メルカリの検索におけるスペース文字になりますので、キーワードの数によって変更する必要があります。

たとえば、"PS3"と"本体"というキーワードのみ("初期型"は不要)の場合は、以下のように変更します。

 # キーワードを設定
    keyword = "PS4" + "+" + "本体" # "+"はキーワードをAND検索するための設定

"初期型"を削除するだけでなく、その前の"+"も削除していることに注意してください。

逆にキーワードを増やす場合は考えてみます。たとえば、"swicth"と"あつ森"と"ソフト"と"新品"という4つのキーワードで検索したい場合(switchの新品あつ森ソフト)の売買価格帯データを取得したい場合)は、以下のようになります。

 # キーワードを設定
    keyword = "switch" + "+" + "あつ森" + "+" + "ソフト" + "+" + "新品" # "+"はキーワードをAND検索するための設定

追加したいキーワードの前に"+"という文字を加えることを忘れないようにしてください。

あつ森を例にしましたが、ポケモンゼルダなどなど、様々な文字列に変更することで、キーワードに合致したデータを集めることができます。

さらに追加したいキーワードがある場合も、基本は同じです。追加したいキーワードの前に"+"という文字を加えることを忘れなければ問題ありません。

まとめ

フリマアプリであるメルカリで、自分が出品したい物品の販売実績データ(売却が成立した価格帯のデータヒストグラム)を作成する方法をご紹介しました。

今回は、ゲーム関連の売却を想定した例を載せましたが、紹介した方法はゲーム以外でも使えます。キーワードを変えるだけで、本や漫画、おもちゃや洋服、食器や雑貨、などなど、様々な物品を対象にすることができます。

このデータがあれば、出品時の価格設定の参考になると考えています。少なくとも、高すぎず、安すぎない価格設定は行うことができるのではないでしょうか。さらに、運が良ければ、お宝物品であることに気付けるかもしれません。

以下の過去記事でも紹介したように、意外な物品(ゲームソフトや、レゴのようなおもちゃ)にも、高価にやり取りされているものがあります。高価にやり取りされているかどうかについても、今回ご紹介した方法でデータを見ることで、判断することができます。

mycrofton.hatenablog.com

mycrofton.hatenablog.com

なお、今回ご紹介したプログラム、いくつか使いにくい点もあるかもしれません。

たとえば、キーワードの変更するのが、少し面倒だなと感じる方もいるかもしれません。確かに、今回紹介した方法はキーワードの指定が面倒な部分があると思います。

もし、興味を持たれた方は、pythonのプログラムを勉強し、自分の使いやすいように変更することも考えてみてはいかがでしょうか。

プログラムの便利さや楽しさが少しでも伝わっていましたら幸いです。