【发布时间】: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