Question: It is simple enough to send a GET request to the url https://apps.fpb.org.za/erms/fpbquerytitle.aspx?filmtitle=&Submit1=Search to get the 1st page of search results of the wesbite. However, I cannot figure out how to request subsequent pages, which involve sending a POST request to the same url but with a lot form data parameters. I have managed to get the results of page 2 as follows with requests.session() as s: ### REQUESTING FIRST PAGE r = s.request('get', 'https://apps.fpb.org.za/erms/fpbquerytitle.aspx?filmtitle=&Submit1=Search') soup = BeautifulSoup(r.content, 'html.parser') ### REQUESTING SECOND PAGE page_number = 2 form_data = { '__EVENTTARGET': '', '__EVENTARGUMENT': '', '__VIEWSTATE': soup.find('input', id = '__VIEWSTATE').get('value'), '__VIEWSTATEGENERATOR': soup.find('input', id = '__VIEWSTATEGENERATOR').get('value'), '__EVENTVALIDATION': soup.find('input', id = '__EVENTVALIDATION').get('value'), 'vwfpbquerytitle_DXKVInput': soup.find('input', id = 'vwfpbquerytitle_DXKVInput').get('value'), 'vwfpbquerytitle$CallbackState': soup.find('input', id = 'vwfpbquerytitle_CallbackState').get('value'), 'vwfpbquerytitle$DXSelInput': soup.find('input', id = 'vwfpbquerytitle_DXSelInput').get('value'), 'vwfpbquerytitle_DXHFPWS': soup.find('input', id = 'vwfpbquerytitle_DXHFPWS').get('value'), 'popupControlWS': soup.find('input', id = 'popupControlWS').get('value'), 'DXScript': '1_155,1_87,1_147,1_97,1_123,1_106,1_113,1_84,1_139,1_137,1_98,1_135', '__CALLBACKID': 'vwfpbquerytitle', '__CALLBACKPARAM': ( f"c0:KV|777;{soup.find('input', id = 'vwfpbquerytitle_DXKVInput').get('value')};GB|20;12|PAGERONCLICK3|PN{page_number - 1};", ), } r2 = s.request('post', 'https://apps.fpb.org.za/erms/fpbquerytitle.aspx?filmtitle=&Submit1=Search', data = form_data) soup2 = BeautifulSoup(r.content, 'html.parser')  But the last response r2 does not give me any indication for what the constantly changing __CALLBACKPARAM and vwfpbquerytitle$CallbackState parameters should be for the next request, as they are not present anywhere in the HTML response. In fact the only reason I can set the __CALLBACKPARAM correctly for the 2nd request above is because I can see by inspecting the website that the patterns such as c0:KV|777, etc. are always there for that 2nd request. So my question is how can I request subsequent pages past this point? Because setting __CALLBACKPARAM in the previous way, e.g. page_number = 5 '__CALLBACKPARAM': f"c0:KV|777;{soup.find('input', id = 'vwfpbquerytitle_DXKVInput').get('value')};GB|20;12|PAGERONCLICK3|PN{page_number - 1};"  just gives me the same 2nd page of results as before

Answer: The only variable part of __CALLBACKPARAM that matters is: PAGERONCLICK{}, 2{};12 and PN{}. __VIEWSTATE, __CALLBACKID and vwfpbquerytitle$CallbackState don't actually need to be changed. credit to @xoxouser for figuring out that 777 was the length of str(array), it was the only part that seemed random, but in the end it did not actually matter; as long as it is consistent with the supplied array. Here's the code: import requests headers = { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', } params = { 'filmtitle': '', 'Submit1': 'Search', } data = { "__VIEWSTATE": "/wEPDwUKLTMyMDI3MDk3MQ9kFgICAw9kFgICAQ88KwAaAgAPFgIeD0RhdGFTb3VyY2VCb3VuZGdkFzwrAAYBBRQrAAJkZGQYAgUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgUFD3Z3ZnBicXVlcnl0aXRsZQUVdndmcGJxdWVyeXRpdGxlJERYSEZQBSJ2d2ZwYnF1ZXJ5dGl0bGUkRFhIRlAkVFBDRkNtMSRUQyRPBSJ2d2ZwYnF1ZXJ5dGl0bGUkRFhIRlAkVFBDRkNtMSRUQyRDBQxwb3B1cENvbnRyb2wFEUVudGl0eURhdGFTb3VyY2UxDzwrAAkBAQ9oZGQs+akQiwv01gWVLky5TJXi94fPtkrfInkrLr1p5PmBGQ==", "__CALLBACKID": "vwfpbquerytitle", "vwfpbquerytitle$CallbackState": "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" } page = 1 digits = len(str(page - 1)) callback_param = "c0:KV|777;['82781','77392','73876','27414','86034','86724','84572','74413','86693','74712','86197','86844','74646','86076','78745','541','24883','86596','85761','15616','10597','2794','7054','858','4882','16417','20820','78254','77144','76884','79591','79593','20312','20496','9505','14668','19864','12233','86794','86738','21635','27129','12234','12022','19001','17219','6838','6839','65534','81397','67433','22822','17750','23722','24352','24473','4768','4769','3992','8253','24020','78812','2418','2419','27518','84206','82214','86237','27493','68622','6856','1809','65412','65596','1810','81076','80976','24682','14692','15583','15582','16936','10250','21789','77646','20299','14754','25909','19773','67116','5254','3767','13161','16966','7559','75590','77856','6951','8646','67665'];{args};" args = f'GB|{digits + 19};12|PAGERONCLICK{digits + 2}|PN{page - 1}' data["__CALLBACKPARAM"] = callback_param.format(args=args) url = 'https://apps.fpb.org.za/erms/fpbquerytitle.aspx' response = requests.post(url, params=params, headers=headers, data=data) print(response.text)