使用amazons搜索不工作

时间:2014-05-27 23:39:43

标签: php web-services api amazon

我制作了一个使用"戴尔笔记本电脑x500"等关键字的功能。或其他东西,它试图搜索它。我做了一个简单的方法,只是将它添加到关键字搜索网址,但与我在搜索框中输入文字并按下提交相比,它会给我不同的结果。然后它抓住第一个结果链接。有时这种方法可以正常工作,有时则不然。

function getAmazonLink($keywords){
        $keywords = preg_replace("/[^a-z0-9_\s-]/", "%20", $keywords);
        $link = "http://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords=$keywords";
        //return $link;
        $content = getContents($link);
        $doc = new DOMDocument();
        $doc->loadHTML($content);
        $as = $doc->getElementsByTagName('a');
        foreach ( $as as $a){
            if($a->parentNode->nodeName == 'h3'){
                if($a->parentNode->getAttribute('class') == 'newaps'){
                    if($a->parentNode->parentNode->getAttribute('id') == 'result_0'){

                        return $a->getAttribute('href');
                    }
                }
            }
        }
        return $link;

1 个答案:

答案 0 :(得分:0)

与许多其他在线商店一样,亚马逊将根据您帐户的购买/搜索记录定制搜索结果。由于您的网络应用程序未使用已登录的亚马逊帐户,因此获得的结果并非适合任何人的帐户历史记录。在评论中,您询问是否有办法解决这个问题,但是没有什么可以解决的 - 它会给您有效的结果,而不是那些定制的结果到特定人员的亚马逊帐户。这是预期的结果,而不是错误。