如何修复 python 请求分页不起作用

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

我做错了什么,我该如何解决?


慕仙森
浏览 158回答 1
1回答

潇湘沐

在第二个params设置(for循环内)中,您需要删除'offset': 0,,因为它指示服务器每次都从第一页的第一个结果中获取。这是唯一的主要错误。修复后,我开始为每个页面请求获取不同的产品。其次,for 循环可能应该从 开始1,因为正如我从响应中看到的,页面是从 1 开始计数的。第三,第二次requests.get调用可能应该在分页 for 循环内,或者您只需复制带有错误缩进的粘贴代码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python