我有一个像这样的http GET请求:
url = 'www.somedomain.com/content?var=whatever&pageno=1'
r = requests.get(url)
我想将pageno=1
替换为pageno=2
,他们说requests
适用于人类,但我无法在不将查询解析为pyhton的情况下弄清楚如何做到这一点使用urlparse
的字典,然后更改相应的值,然后将urllib.urlencode
更改为新查询。
我知道我可以做一个re.sub()
并用2或3行解决问题,我认为必须有'pythonic方式'。
我在过去几个月里一直在使用scrapy
,他们有一个很好的Request.replace
方法来做到这一点,我想我会向requests
建议一个功能。
答案 0 :(得分:1)
您可以使用params
方法的get()
参数。 quick start
>>> payload = {'var': 'whatever', 'pageno': '1'}
>>> r = requests.get("http://www.somedomain.com/content", params=payload)
>>> print(r.url)
http://www.somedomain.com/content?var=whatever&pageno=1
使用这种传递参数的方法,您可以在调用payload
之前轻松操纵.get()
字典
答案 1 :(得分:0)
我总是以简单的方式做到这一点 - 尽管总有多种方法可以做同样的事情。
首先使用一些逻辑使脚本找到最大值。然后,
max_page=10 # You need to find a way to get this, for now assuming its 10 for example purpose
current_page=0
while current_page!=max_page:
current_page=current_page+1
url = 'www.somedomain.com/content?var=whatever&pageno=%s'%str(current_page)
r = requests.get(url)