【发布时间】:2014-11-19 09:30:59
【问题描述】:
我有一个这样的 http GET 请求:
url = 'www.somedomain.com/content?var=whatever&pageno=1'
r = requests.get(url)
我想用pageno=2 替换pageno=1,他们说requests 是为人类设计的,但如果不使用urlparse 将查询解析为pyhton 字典,我无法弄清楚如何做到这一点,然后改变对应的值,然后urllib.urlencode变成一个新的查询。
通知
我知道我可能可以做一个re.sub() 并在 2 或 3 行内解决问题,我只是认为必须有一个“pythonic 方式”。
过去几个月我一直在使用scrapy,他们有一个很好的Request.replace 方法来执行此操作,我想我会向requests 推荐一个功能。
【问题讨论】:
-
所以你已经想出了如何做到这一点。我肯定会推荐
urlparse/urlencode方法而不是正则表达式,除非你必须在一个循环中执行数千个,在这种情况下我猜你应该尝试不同的方法并对它们进行基准测试 -
注意关注点的分离:
requests用于发出请求,当标准库已经提供 URL 解析功能时,它不需要提供。 -
Well requests 确实有 params 参数,这可能有助于使它更容易一些。
标签: python http get python-requests