投稿

ラベル(スクレイピング)が付いた投稿を表示しています

kakaku.comのカテゴリランキング情報収集方法

イメージ
 以前、amazon.co.jpのランキング情報取得方法について メモ を取っていましたが、今回はkakaku.comのランキング情報も同じように取得してみたいと思います。 kakaku.comでランキング情報を収集してみる さて、前置きは置いておいて早速やってみましょう。 今回は、kakaku.comの NASカテゴリランキングページ のランキング情報を取得してみます。こちらのページですね。 HTMLのソースコードを確認してみると、こんな感じです。 構造を見ていくと、 こちらのように、各順位ごとに<div class="rkgBox noGraph withReview">ないし、<div class="rkgBox noGraph">で構造が作られていることがわかるので、find_allでこの属性を取り出します。こいつを、1要素=eleとしてbeautifulsoupで取り出して、各々の中身をget_infoで解析してやるという流れになります。 各要素の中身は、 といった感じになっており、 <span class =" num "> にランキング、 <span class =" rkgBoxNameMaker "> にメーカー名、 <span class =" rkgBoxNameItem "> に製品名、 <span class =" price " > に最低価格が記載されていますので、get_infoの中で取り出してやります。 取り出したデータは、pandaでcsvファイルとして保存します。 コードはこんな感じ。 #!/usr/bin/python import urllib3 from bs4 import BeautifulSoup import time import datetime import pandas as pd uri_attention = 'https://kakaku.com/pc/nas/ranking_7731/hot/' uri_sales = 'https://kakaku.com/pc/nas/rank...

amazon.co.jpのカテゴリランキング情報収集方法

イメージ
 amazonを利用するとはどういうことか? というちょっと小難しいところから入りたいと思います。 ご存じかとは思いますが、amazon.co.jpでお買い物をするためにはログインが必要で、ログイン時に下記メッセージが表示されます。 ポイントは「続行することで、Amazonの利用規約およびプライバシー規約に同意するものとみなされます。」とあります。すなわち、ログインしなくても収集できる情報については、利用規約に同意しない状態でも参照することが可能。と解釈できます。 利用規約 のほうに、下記のような記載があります。 この中に、「この利用許可には、アマゾンサービスまたはそのコンテンツの転売および商業目的での利用、製品リスト、解説、価格などの収集と利用、アマゾンサービスまたはそのコンテンツの二次的利用、第三者のために行うアカウント情報のダウンロードとコピーやその他の利用、データマイニング、ロボットなどのデータ収集・抽出ツールの使用は、一切含まれません。」とあります。 データマイニングや、ロボットなどのデータ収集・抽出ツールの使用は認められません。 すなわち、ログインしたうえで(利用許諾に同意したうえで)しか得られない情報をマイニング、スクレイピングで収集することは、利用許諾への違反となるのでNG。ただし、利用許諾に同意しない状態でも収集できるデータをマイニング、スクレイピングで収集しても、利用許諾違反にはならない(そもそも同意もしていない)と判断できます。 当然、マイニング、スクレイピングでAmazonさんのサーバーに負荷をかけてサービスが立ちいかなくさせてしまったり、収集したデータをむやみやたらに公開してしまったりすると、別の観点で問題が出てきますので、節度を守って利用する必要があると考えます。 ※例えば、収集したデータの著作権はそもそも誰のもの?それを勝手に公開などしていいの?など。サーバー負荷が高まってしまえば、DOS攻撃とみなされても仕方ないですし。 ちなみに「マイニング、スクレイピングの処理をAWSで動かして自動収集!」と考える方もいらっしゃるかと思いますが、類似の利用規約があると考えますので(上記の利用規約に何らかの形で同意してしまっている)、よく確認してから実施されるのがいいと思います。 またいわゆる免責事項ですが、こちらの考え方を参考にされて何らか...