我不明白为什么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
变量永远不会改变,所以你一直在请求同一个页面,因此在每次迭代中没有值改变。