【问题标题】:How to change my current location using Python requests?如何使用 Python 请求更改我的当前位置?
【发布时间】:2021-07-09 13:09:54
【问题描述】:

我正在尝试获取亚马逊新加坡的卖家数量。为此,我使用了连接到新加坡服务器的 VPN 服务。但是我不想再使用它了,因为它的免费使用时间已过。我不想使用 VPN,而是想使用 requests 库更改我的位置。

这是我的代码:

# Set asin, link and headers
asin = XXXXXXXXXX
link = 'https://www.amazon.sg/dp/' + str(asin)

# Headers
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'}

# Set requests object
res = requests.get(link, params = {"format": "json"}, headers = headers)

# Create soup object
soup_data = BeautifulSoup(res.text, 'html.parser')
print(soup_data)

当我运行此代码时,亚马逊会看到我在土耳其(这是我当前的位置)。而且我看不到有多少人在销售该产品,因为亚马逊在土耳其看到了我。我想将我的位置更改为新加坡。如何使用 requests 库或更改 headers 来做到这一点?

亚马逊是否有GET 参数来更改位置?如:

www.amazon.sg/dp/ASIN_NUMBER?LOCATION=SINGAPORE

希望你们明白我的意思。

【问题讨论】:

  • 亚马逊不太可能允许您的客户告诉它它在哪里。亚马逊更有可能使用您的 IP 地址(可能还有其他因素)来决定它认为您在哪里。通过使用 VPN,您正在更改亚马逊看到您连接的 IP,从而更改他们认为您所在的位置。
  • 您可能想使用住宅代理将您的位置隐藏为新加坡。抓取通常在市场上被阻止。普通的 VPN 无法击败亚马逊的爬虫检测。有现成的解决方案,例如 IP2Proxy 来检测数据中心、VPN 和爬虫。

标签: python arrays string python-requests geolocation


【解决方案1】:

亚马逊可能正在使用您的 IP 来确定您的位置。您可以尝试使用一些公开可用的代理:

def main():

    import requests

    url = "https://d.pub.network/init"

    for address in ("http://45.77.151.33:8080", "http://136.244.83.131:8080"):
        proxies = {
            "https": address
        }
        
        response = requests.get(url, proxies=proxies)
        content = response.json()

        city = content["location"]["cityName"]
        country = content["location"]["countryCode"]

        print("I think you are in {}, {}".format(city, country))
    
    return 0


if __name__ == "__main__":
    import sys
    sys.exit(main())

输出:

I think you are in Piscataway, US
I think you are in Frankfurt am Main, DE
>>> 

【讨论】:

  • 如何使用此代码向亚马逊展示自己,就好像我在新加坡一样?我尝试了一些东西,但它一直在崩溃。
【解决方案2】:

亚马逊不太可能允许您的客户告诉它它在哪里。亚马逊更有可能使用您的 IP 地址(可能还有其他因素)来决定它认为您在哪里。通过使用 VPN,您正在更改亚马逊看到您连接的 IP,从而更改他们认为您所在的位置。

【讨论】:

  • 是的,先生。这就是我以前使用VPN的原因。亚马逊使用我的 IP 地址来决定我在哪里。但正如我所说,我找不到带有新加坡服务器的免费 VPN。所以我想用 Python 来完成这件事。如果我不能用 Python 处理这个问题,你能告诉我一个带新加坡服务器的免费 VPN 吗?
猜你喜欢
  • 2017-04-27
  • 2011-09-05
  • 1970-01-01
  • 2017-08-03
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多