メルカリでの出品情報をメール配信してくれる『メルカリチェッカー』開発への道 vol1
この記事の対象読者はメルカリで買い物をすることが多い人です、 連載を最後まで読むと、メルカリで最安値商品を誰よりも早く見つけられるようになります。
↓メルカリチェッカー完結しました! https://tokuchie.com/mercari_checker_fin/
[toc]
気軽にネットショッピングするならメルカリがおすすめです
こんにちは、皆さんは普段買い物するとき、どんなサイトを使っていますか? Amazon 、楽天、価格.com など今インターネット上には沢山買い物する場所があると思いますが、僕が最近いつも使っているのはメルカリです。
テレビ CM をよくやっているので目にしたことがある方もいるかもしれませんが、主に女性向けのファッションアクセサリーまたはアニメグッズなどがよく出品されているのですが、意外なことに家電製品やアウトドア商品など男性向けの商品も沢山出品されています。
自分の場合だと、テレビもパソコンのディスプレイもメルカリ経由で非常に安く買うことができました。
↓メルカリチェッカー完結しました! https://tokuchie.com/mercari_checker_fin/
人気商品が秒速で売れてしまう事がスマホユーザーが多いメルカリの特徴
しかし個人的に一つだけ不満な点があります。それは、好条件の出品を探し出すのが少々難しい点です。
スマホでメルカリを使用しているユーザーがほとんどだからでしょうが、相場よりも安い商品が出品された区域は非常に短い時間で落札されてしまう傾向にあります。
これいいじゃん!と思った商品は、結構な確率で売れてしまった後だったりする訳です。
例えば、以前 ZenFone2というスマートフォンを以前メルカリで購入しようと思い、検索したところ、8000円という明らかに安い価格で出品されている商品がありましたが、すでに落札済みでした。
気になったので調べてみると、出品後わずか2時間で落札されていることがわかりました。
このケースの様に相場感覚の薄い人が異常に安い、価格で商品を出品することもあるので、
それらをうまくキャッチできれば賢い買い物をすることができるということです。
↓メルカリチェッカー完結しました! https://tokuchie.com/mercari_checker_fin/
通知機能が欲しいなあと思い始めました!
という訳で、お得な出品が現れたら通知を受け取るような機能があれば、お得な出品にすぐ気付く事ができそうです。
『10000円以下の価格で、SONYの中古カメラが出品されたよ!』みたいな通知ですね。
実際にYahoo!オークションだと、ある商品が特定の価格に到達した時や、 ある出品者が出品した時にメールを送ってくれる機能があるのですが、メルカリには標準でそのような機能は備わっていません。
というわけでこれから何度かの連載で、
商品名と検索条件を入力すると毎日特定の内容でメルカリ内の検索を行い、ある価格水準以下で商品が出品された時にはメールでアラート通知をしてくれるWEBアプリ『メルカリチェッカー』を開発してみたいと思います。
今回はとりあえず、メルカリの本体サイトから検索データを CSV にエクスポートする部分まで作ってみます。
開発環境にはオンライン統合開発環境のcloud9を使用することにして、 実際にサイトからデータを引っ張ってくる部分にはRubyのスクレイピング用ライブラリAnemoneを使用します。
メール送信や WEB アプリとして公開する部分は、勉強しながら作っていく形になるので、完成したら使ってみたいという人は気長にお待ちくださいねw ↓メルカリチェッカー完結しました! https://tokuchie.com/mercari_checker_fin/
早速ですが、ちょっとだけ作りました
とりあえず CSV に書き出すところまでは作りました。 ブログで技術的な話を書いても仕方がないので、とりあえずアウトプットだけ下に貼っておきますね。
全くチューニングしていないので、正しい値は取れていませんが、こんな感じでやりますよ~という雰囲気を感じることができますね笑
cloud9上のRuby実行環境で実行しています。 (実際に大規模なリクエストを行う際には、呼び出し頻度の調整などの運営サイトのサーバーに負担をかけないような工夫が必要になりますのでご用心を....)
今は単純に商品名含んだクエリをプログラムに渡してあげることによって、 ①出品商品タイトル ②商品の価格 を取得することになっています。
次回の記事で最低価格・最大価格、出品者の評価などより細かい条件で検索を行う機能を実装したいと思います。
本日も最後までお読み頂きありがとうございました!
実行結果
コード内容("ピカチュウ ぬいぐるみ"で検索):
#! ruby -Ks # -*- mode:ruby; coding:shift_jis -*- require "anemone" require "nokogiri" require "csv" #クロールの起点となるURLを指定 crowl_urls = ["https://www.mercari.com/jp/search/?keyword=%E3%83%94%E3%82%AB%E3%83%81%E3%83%A5%E3%82%A6%E3%80%80%E3%81%AC%E3%81%84%E3%81%90%E3%82%8B%E3%81%BF"] crowl_result = [] Anemone.crawl(crowl_urls, :delay => 0, :depth_limit => 0, :obey_robots_txt => true, :"User-Agent" =>"Article crowler if had rtouble with this crowler, contact sakanakunn1992@gmail.com") do |anemone| anemone.on_every_page do |page| doc = Nokogiri::HTML.parse(page.body) #取得可能 title = doc.xpath("//h3[@class ='items-box-name font-2']") price = doc.xpath("//div[@class = 'items-box-price font-5']") title.zip(price).each do |t,pr| crowl_result.push([t.text,pr.text]) end puts crowl_result csv_line_write = CSV.open("APP.csv","w" ) crowl_result.each do |row| csv_line_write << row end end end
吐き出されたファイル: ↓メルカリチェッカー完結しました! https://tokuchie.com/mercari_checker_fin/