我正在尝试使用 python 请求进行分页,但我似乎无法获取总页面,并且 JSON 响应不会随着页面的更改而更新。url = 'https://www.walmart.com/store/1003-York-pa/search?query=ice%20cream'api_url = 'https://www.walmart.com/store/electrode/api/search' params = { 'query': word, 'cat_id': 0, 'ps': 24, 'offset': 0, 'prg': 'desktop', 'stores': re.search(r'store/(\d+)', url).group(1) } data1 = requests.get(api_url, params=params).json() num_pages = data1['pagination']['pages'][-1]['page'] for page in range(0, num_pages + 1): params = { 'query': word, 'cat_id': 0, 'page':page, // try to update the new page 'ps': 24, 'offset': 0, 'prg': 'desktop', 'stores': re.search(r'store/(\d+)', url).group(1) } data = requests.get(api_url, params=params).json()我做错了什么,我该如何解决?
1 回答
潇湘沐
TA贡献1816条经验 获得超6个赞
在第二个params
设置(for循环内)中,您需要删除'offset': 0,
,因为它指示服务器每次都从第一页的第一个结果中获取。这是唯一的主要错误。修复后,我开始为每个页面请求获取不同的产品。
其次,for 循环可能应该从 开始1
,因为正如我从响应中看到的,页面是从 1 开始计数的。
第三,第二次requests.get
调用可能应该在分页 for 循环内,或者您只需复制带有错误缩进的粘贴代码。
添加回答
举报
0/150
提交
取消