我正在寻求一些帮助。
我正在使用SeleniumWire处理来自网站的请求,我需要更改请求中的一些设置。
我发现request_interceptor方法非常有效。问题是,我只能覆盖URL中的一个参数,我没有找到删除的方法。
举个例子,我去了网站:myawesomeweather.com/monday假设这个url加载了一个名为myawasomeweather.com/api/的api文件?d=星期一&y=2021&m=03并获取2021年3月星期一的所有数据。为了避免多次请求,我只想修改2020年的请求,所以我这样做了:
def ForceYear(request):
params = request.params
params['y'] = '2020'
request.params = params
driver.request_interceptor = ForceYear
driver.get(WeatherURL)
哪一个是完美的,我得到了url api:myawesomeweather.com/api/?d=星期一&y=2020&m=03但现在我想完成2020年的所有月份,所以我想删除&m=03并且只有myawesomeweather.com/api/?d=星期一&y=2020
我该怎么做?如果我覆盖&m=并放入'',它不起作用,设置需要完全脱离链接。。
谢谢!
-编辑
我本应该搜索更多,基本上,函数只需要获取url的每个参数,并将它们放入dict中,所以必须这样做:
if('m' in params):
del params['m']
感谢您抽出时间
从params
中删除密钥
params.pop('m', None)