我正在嘗試從使用分頁的 URL 中獲取資料。我使用以下有效負載獲取分頁資料:
payload = {
'Pageno': '7',
'strCat': '-1',
'strPrevDate': '20220122',
'strScrip': '',
'strSearch': 'P',
'strToDate': '20220122',
'strType': 'C'}
我不知道那里有多少頁。我想一個一個地拿它們,直到我最終得到一個不存在的頁面。提取資料的代碼如下:
jsonData = requests.get(url, headers=headers, params=payload).json()
如何確保我以 URL 的存在為條件提出此請求?
網址是:
url = 'https://api.bseindia.com/BseIndiaAPI/api/AnnGetData/w'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
uj5u.com熱心網友回復:
對于 的任何正值,BSE 的 API 將回傳 200 OK Pageno,即使您已經閱讀了資料的末尾。您應該遍歷每一頁,然后在遇到空串列(這表明您已到達資料末尾)時中斷。
import requests
payload = {
'Pageno': 1,
'strCat': '-1',
'strPrevDate': '20220122',
'strScrip': '',
'strSearch': 'P',
'strToDate': '20220122',
'strType': 'C'
}
url = 'https://api.bseindia.com/BseIndiaAPI/api/AnnGetData/w'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
data = []
should_fetch_next_page = True
while should_fetch_next_page:
print(f"Fetching page {payload['Pageno']} ...")
jsonData = requests.get(url, headers=headers, params=payload).json()
if jsonData["Table"]:
data.extend(jsonData["Table"])
payload['Pageno'] = 1
else:
should_fetch_next_page = False
print(data)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/418922.html
標籤:
上一篇:改進讀取檔案夾中檔案的功能
