我正在尝试检索 亚马逊产品的价格 。 我尝试了两种方法:
file_get_contents
- >正则表达式 - > 有效。我注意到,如果 javascript已启用,的xpath与xpath的xpath不同,而 javascript已停用。
无论如何,如何使用 xpath 检索价格?
这就是我正在做的但是代码什么也没有返回(即使它在任何其他网站上工作):
(xpath是使用 firebug 获取的)
$url = 'http://www.amazon.com/dp/product/B00TRQPSXM/';
$path = '/html/body/div[3]/form/table[3]/tbody/tr[1]/td/div/table/tbody/tr[2]';
$html = file_get_contents($url);
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXpath($dom);
$elements = $xpath->query($path);
if($elements)
{
foreach($elements as $element)
{
echo $element->nodeName.'<br>';
echo $element->nodeValue.'<br>';
}
}
答案 0 :(得分:1)
每次尝试后,您的请求都会被阻止,亚马逊检查机器人访问权限。不要废弃他们的网站,因为它违反亚马逊的服务条款(或其他任何名称),使用他们在http://developer.amazonservices.com找到的API。您将获得this operation后的价格信息。
还有一个你可以使用的php sdk。
无论哪种方式,file_get_contents()
都不是此处的选项,如果您想要抓取页面使用curl并使其看起来像一个独特的访问者。