用于请求中分页参数的循环

2024-05-15 13:13:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想填补空缺。我的目标是只招一家公司的职位

import requests
from tqdm import tqdm_notebook
import pandas as pd
r = requests.get('https://api.hh.ru/vacancies?employer_id=80').json() 
r

如果我这样做,我得到默认只有20个空缺(0页),虽然有488个

^{pr2}$

以及

'page': 0,
'pages': 25,
'per_page': 20

我可以做循环

vac = []
for i in tqdm_notebook(range(0, 25)):
    vac.append(requests.get("https://api.hh.ru/vacancies?employer_id=80", params={'page': i}).json())

但我只有25个空缺(每页一个)。 或者我可以

vac = []
for j in tqdm_notebook(range(0, 20)):
    for i in tqdm_notebook(range(0, 500)):
        vac.append(requests.get("https://api.hh.ru/vacancies?employer_id=80", params={'page': i, 'per_page': j}).json())

但这是一个非常昂贵的方法,我们重复了很多动作。如何修复?在


Tags: httpsimportapiidjsongetruhh
1条回答
网友
1楼 · 发布于 2024-05-15 13:13:26

您将需要根据API的documentation手动设置page和peru-page参数。但是,per_page参数不需要循环-它应该是一个静态数字(20):

vac = []
for i in tqdm_notebook(range(0, 25)):
    vac.append(requests.get("https://api.hh.ru/vacancies?employer_id=80", params={'page': i, 'per_page':20}).json())

另外,考虑根据分页结果的第一个页面动态地迭代页面范围。在

相关问题 更多 >