python API分页循环变得无限



我不明白为什么while循环是无限的(似乎是因为它卡住了(它会增加页码,并在得到空正文(没有更多结果(后停止请求。我用响应体的长度检查机身

baseurl = "https://jobs.github.com/positions.json"
def get_number_of_jobs(technology):
number_of_jobs = 0
page=1
payload={"description":technology,"page":page}
new_results=1
while new_results>0:
r=requests.get(baseurl,payload)
new_results =len(r.json())
page+=1
number_of_jobs+=(len(r.json()))

return technology,number_of_jobs

您的payload={"description":"php","page":page}应该在while循环中,因为它的page在其他情况下始终为1。

你的代码应该是这样的:

baseurl = "https://jobs.github.com/positions.json"
def get_number_of_jobs(technology):
number_of_jobs = 0
page=1
new_results=1
while new_results>0:
payload={"description":technology,"page":page}
r=requests.get(baseurl,payload)
new_results =len(r.json())
page+=1
number_of_jobs+=(len(r.json()))

return technology,number_of_jobs

循环是无限的,因为条件new_results > 0始终为真。

正如@DYZ所指出的,payload变量永远不会改变,所以你一直在请求同一个页面,因此在每次迭代中没有值改变。

最新更新