目次
スクレイピングと在庫管理の関係
スクレイピングはインターネット上の情報を効率的に収集する技術ですが、在庫管理は在庫の量を明確にする作業です。一見、何の関連性もないように見えますが、スクレイピングは在庫管理にも役立ちます。
本記事ではスクレイピングと在庫管理をテーマにしますが、業種によってはスクレイピングは在庫管理の大きな味方になると思います。
スクレイピングと在庫管理の詳細
これからはスクレイピングと、在庫管理の詳細について紹介します。
スクレイピングはネットショップの在庫管理に役立つ
楽天やアマゾンの、正確な在庫数はわかりません。しかし在庫ありと表示していたり、販売をしている商品は在庫があると判断できます。このような情報をスクレイピングで取得したら、どのようなメリットがあるのでしょうか?
名前を知っている人は多いと思いますが、無在庫販売という商法があります。これは注文を受けてから仕入れ販売する手法ですが、安いショップから買い少しでも高い価格で売るのが基本です。このような仕事をしている人にとって、ネットショップの在庫の把握は非常に大切です。
私も一時期そんな仕事をしていましたが、働いていた会社では仕入れるショップと、販売するショップの価格差がわかるシステムを構築していました。ワーカーは一円でも高く売れると判断したら、OKボタンを押すだけでした。
如何に在庫情報を取得するか?
基本的にスクレイピングはサイトに存在する情報しか取得できないので、「在庫あり」または「販売中」です等の言葉を探すしかないと思います。また「入荷待ち」ですというキーワードを、探すのも大切だと思います。
数量欄に1000などの数字を入力したら「この商品の在庫数は○○個です」等のメッセージが流れてくるかもしれませんが、Amazonや楽天で入力作業を自動化できるかどうかはわかりません。手動だったら可能と思いますが、スクレイピングの意味がありません。
仮に自動化できたとしてもAmazonや楽天は何らかの対策を取ると思うので、多くの数字を自動的に入力する方法はおすすめできません。
スクレイピングの基本は対象のキーワードに使われているHTMLタグをセットすることですが、対象のサイトのソースを見たらわかると思います。ソースを見てもわからない場合は、言葉そのものをサーチするしかありません。
スクレイピングで在庫管理をするときは週に一度はチェック
スクレイピングで在庫管理をするときは、定期的に実行しなければいけません。その理由は一週間も経過すると、価格も在庫状況も変化するからです。可能であれば自動的に実行してくれたら一番いいですが、サーバー系のプログラムであればcronが便利です。
cronはWindowsのタスクスケジューラーのようなものですが、レンタルサーバーによっては許可していないところがあります。そのためスクレイピングを自動化したい会社は、cronが使えるかどうかもチェックしてください。
スポンサーリンク
スクレイピングで在庫管理をするためのロードマップ
これからはスクレイピングで、在庫管理をするためのロードマップを紹介します。
在庫管理に関連する項目を見極める
まずは在庫管理に関連する項目を見極めるのが大切です。在庫管理に関連する項目には商品名、店舗名、カラー、大きさなどがありますが、どのタグに含まれているのかを知ることが大切です。
スクレイピングはキーワードだけサーチすることもできますが、含まれているタグを探し抽出した方が汎用性があります。自分で構築する人、設計図だけ自分で書き構築は業者に任せる人は、HTMLの勉強も必要です。
しかしHTMLは単なる書式で、習得するのはさほど難しくありません。習得するときは専門書を購入してもいいですが、インターネット上の解説サイトも便利です。
取得したデータを保存する
スクレイピングで取得したデータは、何らかの方法で保存するのが基本です。サーバー上に保存するのであればテキストファイルも可能ですが、大量のデータを保存するときはデータベースが便利です。
多くのレンタルサーバーはmysqlが利用できるので、取得したデータはmysqlに保存すれば良いと思います。プログラミングできる人は、自動的にmysqlに保存できるようプログラミングしましょう。
mysqlに保存するときは、文字コードに注意してください。データが英数字であれば問題はないと思いますが、漢字のデータはユニコードが便利だと思います。
mysql以外だとcsvファイルが便利だと思います。取得したデータをcsvファイルに変換することは可能ですが、csvファイルに変換したらExcelでも利用できます。
取得したデータを自在に抽出できるようにする
データをデーターベースやExcelに取り込んだ後は、自在に抽出できるようにしたら便利だと思います。Excelであればフィルター機能が使えますが、mysqlの場合はsql言語で取り出す必要があります。
sql言語はデータベース操作に特化した言語で、sql言語を使えばデータを自由自在に抽出できます。ただsql言語は他の言語と組み合わせて使うものなので、接続言語も必要になります。データベースに接続するときは、PHPが簡単だと思います。
PHPにはmysql関連の関数が多くあり、関数を使うだけで目的の大半は達成します。あまりにも複雑なときは接続言語で条件分岐をする必要がありますが、解説書も多いので頑張ってください。
自動化する
自動的にスクレイピングを実行するときはcronが便利ですが、cronの設定方法を解説します。cronの設定方法はレンタルサーバーによって異なりますが、初心者はロリポップが便利だと思います。ロリポップの公式ページに、cronの設定方法が記載されています。
- cronの設定名を記入
- スケジュールを設定
- 実行するプログラムファイルのパスを指定
パスはFTPのトップディレクトリからのパスを指定します。相対パスでは作動しません。
cronが使えないレンタルサーバーの場合は、ボタン一つでスクレイピングが実行できるプログラムを書きましょう。ボタン一つで実行するには、2つのファイルにまとめた方が便利です。
一つ目のファイルはボタンだけを表示し、ボタンを押したら二つ目のプログラムファイルが実行するようにしたら良いと思います。ただ知らない人が間違ってボタンを押したら怖いので、一枚目のファイルに認証プログラムを書きましょう。
スポンサーリンク
Bright Data経由でスクレイピングする方法
Bright Data経由でも、スクレイピングは実行できます。
デバイスにプロキシ設定をする
Bright Data経由でスクレイピングをするには、利用するデバイスにプロキシ設定をする必要があります。専門ブログをリンクしているので一読してください。
各々のデバイスまたはブラウザにプロキシ設定をすることで、自動的にプロキシ経由のインターネットになります。
Bright Data経由でスクレイピングをするメリットは、なんと言ってもBright DataのIPアドレスが使えることです。スクレイピングをしたら、対象のwebサーバーにはIPアドレスが通知されます。最近はITリテラシのないユーザーでも、簡単にIPアドレスを知ることができるようになっています。
簡単にIPアドレスがわかるのは、アクセス解析ソフトが最初からレンタルサーバーに組み込まれているからです。筆者は2つのレンタルサーバーを利用していますが、2つとも最初からアクセス解析ソフトが組み込まれています。
IPアドレスはプロバイダから付与されたものなので、何ら悪いものではありません。しかし何度も同じIPアドレスがスクレイピングしてきたら、対象のwebサーバーの管理者は警戒心を抱くと思います。もしライバル会社らしきIPアドレスだったら・・・お互いに気まずい思いになりますね。
情報を収集するときは、プロキシサーバーのIPアドレスを使った方が安心です。プロキシサーバーのIPアドレスがブロックされた場合は、別のIPアドレスに乗り換えたら済むことです。
ライブラリを探す
簡単にスクレイピングが構築できるライブラリを探しましょう。pythonのライブラリが一番多いですが、今回はPHPのスクレイピングライブラリを紹介します。
https://sourceforge.net/projects/simplehtmldom/files/
レンタルサーバーにライブラリをアップロードした後にすることは、ライブラリを読み込むことですが、「require_once」で読み込めます。読み込むときは、パスもきちんと指定してください。パスを正確に指定しないと、PHPはエラーを吐き出します。
ライブラリを読み込んだあとはコードを書いていくだけですが、インターネット上には多くのサンプルがあるので参考にしてください。さまざまなサイトをスクレイピングしたいときは、URLを変数化したら便利だと思います。
変数はPHPに限らずあらゆる言語にありますが、変数の概念を覚えたら便利なシステムが構築できますよ。
まとめ
スクレイピングと在庫管理をテーマにしましたが、昨今は飛躍的にネットショップが増えています。そんなネットショップからデータを抽出し在庫管理ができたら、ビジネスの幅が広がると思います。
スクレイピングによる在庫管理はプロキシサーバーなしでも可能ですが、プロキシサーバーを経由した方が安心です。またBright Dataにはデータコレクターという機能があるので、プログラミングが苦手な方はデータコレクターを使ってください。
データコレクターはBright Dataのコントロールパネルから利用できますが、視覚的に操作できるので便利ですよ。リストの分野から選ぶこともできるし、直接URLを入力することもできます。
コメントを残す