我正在尝试从 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 等。将来这个功能也将用于分析与亚马逊不同的其他 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 日志文件,但一切都很好。
亚马逊可以在一定时间后阻止我的请求吗?我该如何解决?
在此先感谢您的帮助