我在试着掠夺亚马逊新加坡的销售量。为了做到这一点,我使用连接到新加坡服务器的VPN服务。但是我不想再用它了,因为它的免费使用时间已经过期了。我想使用requests库来改变我的位置,而不是使用VPN。
下面是我的代码:
# 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)当我运行这段代码时,Amazon看到我在土耳其(这是我当前的位置)。我看不到有多少人在卖这个产品,因为亚马逊在土耳其看到了我。我想把我的位置改为新加坡。如何使用requests库或更改headers来执行此操作
亚马逊有更改位置的GET参数吗?例如:
www.amazon.sg/dp/ASIN_NUMBER?LOCATION=SINGAPORE希望你们能理解我的意思。
发布于 2021-04-14 21:19:37
亚马逊不太可能允许你的客户告诉它它在哪里。更有可能的是,亚马逊使用你的IP地址(可能还有其他因素)来决定它认为你在哪里。通过使用VPN,您可以更改Amazon看到您连接的IP,从而更改他们认为您所在的位置。
发布于 2021-04-14 21:36:27
亚马逊可能正在使用你的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
>>> https://stackoverflow.com/questions/67092507
复制相似问题