PHP /抓取 - 获取亚马逊产品价格

时间:2015-08-11 14:53:01

标签: php dom xpath web-scraping domdocument

我正在尝试检索 亚马逊产品的价格 。 我尝试了两种方法:

  1. file_get_contents - >正则表达式 - > 有效
  2. 使用 DOMXPath - > 因某种原因而工作。
  3. 我注意到,如果 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>';
        }
    }
    

1 个答案:

答案 0 :(得分:1)

每次尝试后,您的请求都会被阻止,亚马逊检查机器人访问权限。不要废弃他们的网站,因为它违反亚马逊的服务条款(或其他任何名称),使用他们在http://developer.amazonservices.com找到的API。您将获得this operation后的价格信息。

还有一个你可以使用的php sdk。

无论哪种方式,file_get_contents()都不是此处的选项,如果您想要抓取页面使用curl并使其看起来像一个独特的访问者。