![](/img/trans.png)
[英]How to get price value from Amazon production Advertising API in php
[英]How to extract price from Amazon Url without Amazon API
我正在尝试从Amazon URL加载html文件,以使用Yii上的简单php函数提取产品价格。 我开始使用php函数file_get_contents
获取整个文件,然后从带有DOM的html文件中仅提取价格。
我正在使用DOM解析器来读取HTML文件。 它具有读取html文件标签的便捷功能。 这是解析器:
http://simplehtmldom.sourceforge.net/
php分析的URL可以是amazon.com,amazon.co.uk,amazon.it等。将来,此功能还将用于分析与Amazon不同的其他URL。
我创建了一个简单的函数,可以从URL提取价格,这里是:
public function findAmazonPriceFromUrl($url) {
Yii::import('ext.HtmlDOMParser.*');
require_once('simple_html_dom.php');
$html = file_get_html($url);
$item = $html->getElementsById('actualPriceValue');
if ($item) {
$price = $item[0]->firstChild()->innertext;
} else {
$item = $html->getElementsById('current-price');
$price = $item[0]->innertext;
}
return $price;
}
file_get_html
函数如下:
function file_get_html($url) {
$dom = new simple_html_dom();
$contents = file_get_contents($url);
if (empty($contents) || strlen($contents) > MAX_FILE_SIZE) {
return false;
}
$dom->load($contents);
return $dom;
}
我注意到在几次请求(各种链接)之后,我总是从服务器收到错误消息(错误500)。 我检查了我的apache日志文件,但是一切都很好。
亚马逊可以在一段时间后阻止我的请求吗? 我该如何解决?
先谢谢您的帮助
我遇到了同样的问题,这是我的解决办法:如果未解析图片,我将再次运行脚本。 图像首先在我的php脚本中解析,所以我检查它是否有效并且Amazon提供信息。 希望对您有所帮助。
if($html->find('#main-image')) {
foreach($html->find('#main-image') as $e) {
echo '<span href="'. $e->src . '" class="imgblock parseimg">
<img src="'. $e->src . '" class="resultimg" alt="'.$name.'" title="'.$name.'">
</span>
<input type="hidden" name="my-item-img" value="'. $e->src . '" />';
}
} else {
gethtml($url,$domain);
die;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.