Python-Selenium Wire,如何删除拦截器参数



我正在寻求一些帮助。

我正在使用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)

相关内容

  • 没有找到相关文章