亚马逊:是不是可以在亚马逊搜索结果的 URL 中指定邮政编码?

Posted

技术标签:

【中文标题】亚马逊:是不是可以在亚马逊搜索结果的 URL 中指定邮政编码?【英文标题】:Amazon: is it possible to specify zip code in the URL for Amazon search results?亚马逊:是否可以在亚马逊搜索结果的 URL 中指定邮政编码? 【发布时间】:2019-06-06 11:06:48 【问题描述】:

我注意到一个问题。如果我复制带有搜索结果的亚马逊 URL,并且使用另一个 IP 的人打开它,那么结果可能会有所不同。 例如: https://www.amazon.com/s/ref=sr_nr_p_36_0?lo=toys-and-games&rh=n%3A165793011%2Cp_72%3A1248964011&sort=price-desc-rank&low-price=34.99&high-price=34.99

如果您从 Dallas IP 打开此 URL,您将获得 102 页的结果。

如果您使用 Honolulu IP 打开它,您将获得 101 页。

如果你从俄罗斯 IP 打开它,你会得到 93 页。

是否可以在 url 中直接指定美国邮政编码以便为每个 IP 地址显示相同的结果?

我注意到的另一个小问题 - 它为不同的人显示不同的页面布局。有时它是默认的蓝色链接,有时它有银色按钮。也许有人知道如何使用 url 参数将设计锁定到一种布局? :)

【问题讨论】:

也许可以尝试使用代理来锁定 IP(及其位置) @molamk,这就是我实际在做的事情 :) 我通过不同的代理抓取它,但想锁定交货位置。其实我已经找到了解决办法。 @Stalinko 你好!你能在这里分享你的解决方案吗? @Stalinko 请分享您的解决方案。我需要它。 旧解决方案不起作用。 【参考方案1】:

没有简单的解决方案,所以这是我的复杂方法。

这个想法是:您必须发送与您在浏览器中手动更改 ZIP 时发送的相同请求。然后您的邮政编码将被记住。

这是我在 php 中使用 GuzzleHttp 客户端的解决方案:

$jar = new \GuzzleHttp\Cookie\CookieJar();
$client = new \GuzzleHttp\Client([
    'headers' => [
        'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'accept-language' => 'en;q=0.8',
        'user-agent' => '', //set some User-Agent or just leave it empty cos it works too
        'x-requested-with' => 'XMLHttpRequest'
    ],
    'cookies' => $jar,
]);

try 
    $client->post('https://www.amazon.com/gp/delivery/ajax/address-change.html', [
        'form_params' => [
            'locationType' => 'LOCATION_INPUT',
            'zipCode' => '11219', //YOUR ZIP HERE
            'storeContext' => 'office-products',
            'deviceType' => 'web',
            'pageType' => 'Detail',
            'actionSource' => 'glow',
        ]
    ]);
 catch (RequestException $e) 
    echo "Failed to set ZIP";


$response = $client->get('...'); //get any other page from Amazon, now it will have proper ZIP

我正在使用很棒的 Guzzle 功能 - cookies 容器:http://docs.guzzlephp.org/en/stable/request-options.html#cookies 它可以像浏览器一样记住和处理请求之间的 cookie。

在所有进一步的请求中,您应该继续使用这些 cookie,它会为您返回 ZIP 的结果。

当然您可以手动处理 cookie,Guzzle 不是必需的,但可以让事情变得更简单。

【讨论】:

以上是关于亚马逊:是不是可以在亚马逊搜索结果的 URL 中指定邮政编码?的主要内容,如果未能解决你的问题,请参考以下文章

如何在产品 URL 中使用多个 ASIN 搜索亚马逊

亚马逊搜索 API

我是不是从亚马逊应用商店获得 INSTALL_REFERRER 意图?

亚马逊云搜索查询

亚马逊添加到购物车 url 参数

如何访问亚马逊类别列表的第 101 页