You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Requests发送带查询字符串的GET请求参数被剥离求助

解决requests发送GET请求时查询字符串被剥离的问题

Hey,我来帮你排查这个问题——我之前也遇到过类似的情况,requests自动剥离查询字符串通常不是库本身的bug,大概率是用法错误或者目标网站的反爬机制在搞鬼。咱们一步步来分析:


1. 先检查你是否用错了requests的参数传递方式

其实完全不需要手动用urllib.parse.urlencode(),requests本身就会自动帮你处理参数的编码和URL拼接。你可能犯了一个常见错误:要么把参数手动拼到了URL里,又同时传入了params参数,导致冲突;要么params字典本身有问题。

正确的打开方式应该是这样(我补全了你截断的部分参数,你可以根据实际需求调整):

import requests

# 只保留干净的基础URL,不要手动拼参数
url = 'https://www.booking.com/searchresults.html'
params = {
    'checkin_monthday': '19',
    'checkin_year': '2018',
    'checkout_month': '4',
    'checkout_monthday': '20',
    'checkout_year': '2018',
    'class_interval': 1,
    'dest_id': -1022488,
    'dest_type': 'city',
    'dtdisc': 0,
    'from_sf': 1,
    # 补全你截断的参数,比如成人数量、房间数
    'group_adults': 2,
    'no_rooms': 1
}

# 发送请求时直接传params
response = requests.get(url, params=params)
# 关键:打印实际请求的URL,验证参数是否正确拼接
print("实际请求URL:", response.url)

运行这段代码后,看打印出的URL,就能直观看到参数有没有被正确带上。


2. 警惕Booking.com的反爬机制

Booking.com有非常严格的反爬策略,如果你的请求没有模拟浏览器的行为,服务器可能会直接把你重定向到不带参数的页面,看起来就像是查询字符串被剥离了。这种情况下,你需要添加合理的请求头来伪装:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    'Referer': 'https://www.booking.com/'
}
# 加上allow_redirects=False,看看是不是被重定向了
response = requests.get(url, params=params, headers=headers, allow_redirects=False)
print("状态码:", response.status_code)
print("实际请求URL:", response.url)

如果状态码是3xx(比如302),那基本可以确定是被反爬重定向了,这时候可能还需要添加Cookie或者其他请求头,或者考虑使用会话保持(requests.Session())。


3. 检查你的参数是否完整

你提供的代码里params的group_adul...是截断的,缺失必要参数也可能导致服务器拒绝你的请求,进而重定向到无参数页面。一定要确保所有必填参数都完整,并且格式正确(比如数字类型的参数,requests会自动帮你转换为字符串,不用特意处理)。

最后验证小技巧

每次请求后,先看response.status_code:

  • 如果是200,再看response.url是否带参数;
  • 如果是3xx,说明被重定向了,重点排查反爬和参数完整性;
  • 如果是4xx,说明请求本身有问题(比如参数错误、权限不足)。

内容的提问来源于stack exchange,提问作者ganesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:02:52