Python在cURL API中循环页面的请求

rvpgvaaj  于 2023-01-12  发布在  Python
关注(0)|答案(1)|浏览(135)

我想在页面间循环直到返回None,但不确定如何使用cURL API来实现。我还想在最后将所有结果合并到一个文件中。我用一个重复变量的noob方法实现了这一点,但这显然效率低下。我尝试寻找类似问题的现有答案,但无法获得任何适合我示例的答案。
顺便说一下,API没有头文件,以防出于任何原因考虑这些头文件。
我也试过下载pycurl,但是pip的安装似乎是坏的,而且我没有足够的经验从文件中手动安装,但是我相信这可以通过请求来实现。

import requests
import json

url = 'https://API.API.io/?page='
username = 'API key'
password = ''

params1={"page":"1","per_page":"500"}
params2={"page":"2","per_page":"500"}
params3={"page":"3","per_page":"500"}

r1=requests.get(url,params=params1,auth=(username,password))
r2=requests.get(url,params=params2,auth=(username,password))
r3=requests.get(url,params=params3,auth=(username,password))

rj1=r1.json()
rj2=r2.json()
rj3=r3.json()

writeFile = open('file.json','w',encoding='utf-8')
json.dump(
rj1+
rj2+
rj3,
writeFile)
writeFile.close()
hfsqlsce

hfsqlsce1#

你可以使用for循环从不同的页面获取响应。同样,当打开文件进行写入时,使用with open(...)

import json
import requests

url = "https://API.API.io/?page="
username = "API key"
password = ""

params = {"page": 1, "per_page": 500}

all_data = []
for params["page"] in range(1, 4):  # <--- this will get page 1, 2 and 3
    r = requests.get(url, params=params, auth=(username, password))
    all_data.extend(r.json())

with open("file.json", "w", encoding="utf-8") as f_out:
    json.dump(all_data, f_out, indent=4)

相关问题