Чтобы узнать индекс последней страницы, вы можете выбрать все строки из результата публикации. Если результат равен нулю (строки не выбраны, вы находитесь на последней странице).
Например:
import requests
from bs4 import BeautifulSoup
url = 'https://www.ungm.org/Public/Notice/Search'
payload = {
"PageIndex": 0,
"PageSize": 15,
"Title": "",
"Description": "",
"Reference": "",
"PublishedFrom": "",
"PublishedTo": "12-Jul-2020",
"DeadlineFrom": "12-Jul-2020",
"DeadlineTo": "",
"Countries": [],
"Agencies": [],
"UNSPSCs": [],
"NoticeTypes": [],
"SortField": "DatePublished",
"SortAscending": False,
"isPicker": False,
"NoticeTASStatus": [],
"IsSustainable": False,
"NoticeDisplayType": None,
"NoticeSearchTotalLabelId": "noticeSearchTotal",
"TypeOfCompetitions": []
}
page = 0
while True:
print('Page {}...'.format(page))
payload['PageIndex'] = page
soup = BeautifulSoup( requests.post(url, json=payload).content, 'html.parser' )
rows = soup.select('.tableRow')
# no more data, exit!
if not rows:
break
page += 1
Выводит:
Page 0...
Page 1...
Page 2...
Page 3...
...
Page 49...
Page 50...
Page 51...