2016-08-03 6 views
2

これまでに聞いたことがあると思います。私はまた、おそらくこれをかき集める方法があることを理解しています。私がここにしたことは、既に尋ねられたこととは違っている(私は信じている)。Amazonランキングの星と評価商品の数をカウントするAPI

私は、AmazonのTOSを破ることなく、特定の製品のレビューとスター数だけを引き出すことができます。

あなたが使用できるiframeの内部にあるレビューなどすべてを表示したくありません。私はiframeを表示することができますが、その多くの情報を表示する必要はありません。だから明確にするために、私は星とレビューの数(平均的な顧客のレビューとレビューの数)がほしいだけです。

あなたが余分なマイルに移動してどのようにしたいのか、私は本当にPHP経由でどのように知っていただければ幸いですか?これがTOSに違反していれば、それはIdが本当に知る必要があることです。そうであれば、TOSに反していると言われる場所へのリンクを私に教えてもらえれば嬉しいです。

ありがとうございました!いつも感謝しています。

答えて

0

TOSについてはわかりませんが、公式のAPIがない場合はPHPでこれを行うには、simple_html_dom:http://simplehtmldom.sourceforge.net/を使用してください。

<?php 
define('MAX_FILE_SIZE', 6000000); 
include './simple_html_dom.php'; 

//Your product amazon's url 
$url = 'https://www.amazon.com/SOL-REPUBLIC-1112-31-Headphones-1-Button/dp/B00COOVLMQ/ref=sr_1_1?s=fiona-hardware&ie=UTF8&qid=1470197678&sr=8-1&keywords=sol+republic'; 

$html = file_get_html($url); 
$review_section = $html->find('#averageCustomerReviews',0); 
$stars = $review_section->find('#reviewStarsLinkedCustomerReviews',0)->plaintext; 
preg_match('/\d+\.{0,1}\d*/',$stars,$match); 
echo "Stars: ".$match[0]; //Shoud be stars 
echo "<br />"; 
$reviews = $review_section->find('#acrCustomerReviewText',0)->plaintext; 
preg_match('/\d+/',$reviews,$match); 
echo "Reviews: ".$match[0] //Shoud be reviews number 
?> 

私は実際に試してみました。

+0

「致命的なエラー:メンバー以外のオブジェクトのfind()を呼び出す」 'simple_html_dom'をダウンロードしました –

+0

@foolもう一度テストしましたが、私はまだ星と評価を取得しています...あなたの' simple_html_dom'と 'file_get_contents'のような関数の利用可能性が必要です。私はamazon.comページでのみこのスクリプトをテストしました。レビューとスターの数がタイトルの近くで宣言されているページでのみ動作します。編集:ちょうどamazon.itで試して、同様に動作します。 –

+0

これは、応答のグループや要素を提供していないため、これはAWSの平均的な星評価を引き出すための正当な方法ではないと思うiframe url –

関連する問題