在python中发送请求时如何更改位置

2024-05-15 21:22:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要发送一个请求,以便从该网页获取所有巡航信息: https://www.ncl.com 问题是我在欧洲,我需要以美元计价。不知怎么的,页面“知道”我在哪里,我不能让它返回欧元以外的货币。有没有一种方法可以通过编程来实现? 到目前为止,我的请求是:

session = requests.session()
headers = {
    "authority": "www.ncl.com",
    "method": "GET",
    "path": "/ca/en/search_vacations",
    "scheme": "https",
    "accept": "application/json, text/plain, */*",
    "connection": "keep-alive",
    "referer": "https://www.ncl.com/ca/en/",
    "cookie":"AkaUTrackingID=5D33489F106C004C18DFF0A6C79B44FD; AkaSTrackingID=F942E1903C8B5868628CF829225B6C0F; UrCapture=1d20f804-718a-e8ee-b1d8-d4f01150843f; BIGipServerpreprod2_www2.ncl.com_http=61515968.20480.0000; _gat_tealium_0=1; BIGipServerpreprod2_www.ncl.com_r4=1957341376.10275.0000; MP_COUNTRY=us; MP_LANG=en; mp__utma=35125182.281213660.1481488771.1481488771.1481488771.1; mp__utmc=35125182; mp__utmz=35125182.1481488771.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); utag_main=_st:1481490575797$ses_id:1481489633989%3Bexp-session; s_pers=%20s_fid%3D37513E254394AD66-1292924EC7FC34CB%7C1544560775848%3B%20s_nr%3D1481488775855-New%7C1484080775855%3B; s_sess=%20s_cc%3Dtrue%3B%20c%3DundefinedDirect%2520LoadDirect%2520Load%3B%20s_sq%3D%3B; _ga=GA1.2.969979116.1481488770; mp__utmb=35125182; NCL_LOCALE=en-US; SESS93afff5e686ba2a15ce72484c3a65b42=5ecffd6d110c231744267ee50e4eeb79; ak_location=US,NY,NEWYORK,501; Ncl_region=NY; optimizelyEndUserId=oeu1481488768465r0.23231006365903206",
    "Proxy-Authorization": "Basic QFRLLTVmZjIwN2YzLTlmOGUtNDk0MS05MjY2LTkxMjdiMTZlZTI5ZDpAVEstNWZmMjA3ZjMtOWY4ZS00OTQxLTkyNjYtOTEyN2IxNmVlMjlk"
}
session.headers.update(headers)
url = "https://www.ncl.com/ca/en/search_vacations?cruise=1&cruiseTour=1&cruiseHotel=1&cruiseHotelAir=1&flyCruise=1&numberOfGuests=4294953449&state=undefined&pageSize=10&currentPage=" + str(page_counter) + "&sortBy=Featured&autoPopulate=f&from=resultPage"
    page = session.get(url)
    cruise_results = page.json()

我真的需要不使用VPN隧道或代理。 我用的饼干不是我第一次尝试的。上面的这个,是我从美国挖隧道打开网页时得到的一个。没有做这项工作,所以我猜曲奇不涉及。我在这方面还是个新手。在


Tags: httpscomjson网页searchsessionwwwpage
2条回答

它很可能通过你的IP地址来确定你的位置。我不认为有一种方法可以改变这一程序,因为它是由您的ISP提供的。您需要设置VPN或代理来完成此操作。为什么你说你需要做没有VPN?如果担心的话,它们很容易设置。在

Somehow the page "knows" where i am and i cant get it to return currency other than EUR.

你必须调试/实验服务器的逻辑/代码,你不知道。在

很可能他们会通过你的IP地址检测到你的位置,然后你需要使用代理服务器。在

也可能是,您正在使用的cookie包含一些定义用户设置的信息(例如,我在其中找到了MP_COUNTRY=us;)。在

有些站点使用一个特殊的GET参数(例如country=US,或者{}或者其他什么),它覆盖从你的IP中推断出来的国家/地区,也许你运气好。在

相关问题 更多 >