#python-3.x #multithreading
Вопрос:
У меня есть API, который возвращает только 100 образцов с каждой страницы pr. запрос. К счастью, он также возвращается, если есть следующая страница. Прямо сейчас мой код выглядит так
import requests
next_page = True
i = 0
usr = "my_user"
pwd = "AveryStrongPasswordIndeed"
data_total = pd.DataFrame()
while next_page:
i =1
url = f"https://some_api.com/users?page={i}"
r = requests.get(url,auth=(usr,pwd))
data = pd.DataFrame(r.json())
next_page = data["next_page"].iloc[0] #Check if next-page exists
pd.concat((data_total,data))
как вы можете видеть, циклы продолжаются до next_page
тех пор, пока не будут логически ложными.
Если бы я знал точное количество страниц, я мог бы прочесть его без проблем, но с такой настройкой я изо всех сил пытаюсь понять, как с этим справиться (и нет никакого способа определить количество страниц).
Я думал о создании партий, скажем, по 20 потоков на страницу 1..20
. Если все они есть next_page=True
, сделайте все это снова для 21..40
и повторите. Я сомневаюсь, что это самый эффективный способ сделать это