【问题标题】:using amazons search not working使用亚马逊搜索不起作用
【发布时间】:2014-05-27 23:39:43
【问题描述】:

我创建了一个函数,它使用诸如“戴尔笔记本电脑 x500”之类的关键字,它正在尝试搜索它。我做了一个 hacky 方法,只是将它添加到关键字搜索 url,但与我在搜索框中键入文本并按下提交相比,它会给我不同的结果。然后它会抓取第一个结果链接。有时这可以正常工作,有时却不能。

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;

【问题讨论】:

  • 亚马逊介绍了您。如果您搜索某些内容,它会根据它认为您会喜欢的内容提供量身定制的结果。如果我搜索某些东西,我会得到适合我喜欢的结果。如果一个无 cookie 的未知 IP 进行搜索,那么亚马逊只会返回一个一般的“最佳猜测”。
  • 无论如何要解决这个问题?感谢您的评论
  • “绕过它”是什么意思?您的结果是根据您进行个性化的,普通人的结果不会针对任何人进行个性化,因为他们与帐户没有关联。这是唯一有意义的可能行为。
  • @sphanley 当然有一个解决方法!打开一个新的浏览器选项卡,转到亚马逊,然后在那里进行搜索。 :我

标签: php web-services api amazon


【解决方案1】:

与许多其他在线商店一样,亚马逊会根据您帐户的购买/搜索历史记录来定制搜索结果。由于您的 web 应用程序没有使用登录的 Amazon 帐户,因此它得到的结果并非针对任何人的帐户历史记录。在 cmets 中,您询问是否有办法“解决这个问题”,但没有什么可解决的 - 它为您提供有效的结果,而不是为特定人的亚马逊帐户量身定制的结果。这是预期的结果,而不是错误。

【讨论】:

    猜你喜欢
    • 2011-12-29
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 2014-05-08
    • 1970-01-01
    相关资源
    最近更新 更多