Reputation: 13
I want to send POST request to the following URL ->
http://nhb.gov.in/OnlineClient/categorywiseallvarietyreport.aspx?&menu.Menu=11
If you go to the site, there are fields such as Category, Date, States. So when i fill in the fields and click Search button and inspect the Network Tab I get the paramaters that are required to send POST request.
So, I made a dictionary with key, value pair and sent a post request. Here's my code ->
import requests
data = {'ctl00$ContentPlaceHolder1$scrpMan':'ctl00$ContentPlaceHolder1$UpdatePanel9013|ctl00$ContentPlaceHolder1$btnSearch' ,
'__VIEWSTATE':'/wEPDwUKMTMzMzg0OTIwNQ9kFgJmD2QWBAIFDxYCHgVzdHlsZQUtYmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vYXNzZXRzL2ltZy9sb2dvLnBuZyk7ZAIHD2QWAgIBD2QWAgIBD2QWAmYPZBYKAgcPEA8WBh4NRGF0YVRleHRGaWVsZAUIQ2F0Z05hbWUeDkRhdGFWYWx1ZUZpZWxkBQhjYXRnY29kZR4LXyFEYXRhQm91bmRnZBAVBA9TZWxlY3QgQ2F0ZWdvcnkHRkxPV0VSUwZGUlVJVFMKVkVHRVRBQkxFUxUEATABNAExATIUKwMEZ2dnZ2RkAg0PEA8WBh8BBQpDZW50cmVOYW1lHwIFDENlbnRyZU51bWJlch8DZ2QQFR4JQUhNRURBQkFECEFNUklUU0FSBkJBUkFVVAlCZW5nYWx1cnUGQkhPUEFMDEJIVUJBTkVTSFdBUgpDSEFORElHQVJIB0NIRU5OQUkIREVIUkFEVU4FREVMSEkIR0FO…FZBUkFOQVNJFR4BMQIzMgIzNgEyATMBNAE3AjE1AjM0ATgBOQIxMAIxMQIxMgIyMgE2AjM5AjE0ATUCMTYCMjMCMTcCNDACMjQCMzUCMjgCMTgCMTkCMjACNDEUKwMeZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZGQCFw8PZBYCHgdvbmNsaWNrBTVzZWxlY3RBbGxDZW50ZXIoJ1N5c3RlbS5XZWIuVUkuV2ViQ29udHJvbHMuTGlzdEJveCcpO2QCGQ8PZBYCHwQFNVJlbW92ZUFsbENlbnRlcignU3lzdGVtLldlYi5VSS5XZWJDb250cm9scy5MaXN0Qm94Jyk7ZAIjDw8WAh4HVmlzaWJsZWhkZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQUpY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRMc2JveENlbnRlckxpc3QVB5GC6UfPXNBmxBLvA2devnEGKA==',
'__VIEWSTATEGENERATOR':'DBC76A8E',
'ctl00$ContentPlaceHolder1$drpCategoryName':'4',
'ctl00$ContentPlaceHolder1$LsboxCenterList':'1',
'ctl00$ContentPlaceHolder1$txtdate':'10/01/2019',
'__ASYNCPOST':'true',
'ctl00$ContentPlaceHolder1$btnSearch':'Search'}
r = requests.post(url = 'http://nhb.gov.in/OnlineClient/categorywiseallvarietyreport.aspx?&menu.Menu=11', data = data)
print(r.text)
When I run the script, I receive an error stating
179|error|500|The page is performing an async postback but the ScriptManager.SupportsPartialRendering property is set to false. Ensure that the property is set to true during an async postback.|
and if I try dropping some parameters I receive a response that gives me just the page source.
I want to receive the response with the prices of any category for all the states and for any date. (A table is displayed after I fill in the fields and hit the search button.)
Is that something that I'm doing wrong here?
Upvotes: 0
Views: 348
Reputation: 332
You need to add headers to make the request work. I tested it and its enough to add the User-Agent only:
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0'
}
data = {
'ctl00$ContentPlaceHolder1$scrpMan': 'ctl00$ContentPlaceHolder1$UpdatePanel9013|ctl00$ContentPlaceHolder1$btnSearch',
'__EVENTTARGET': '',
'__EVENTARGUMENT': '',
'__VIEWSTATE': '/wEPDwUKMTMzMzg0OTIwNQ9kFgJmD2QWBAIFDxYCHgVzdHlsZQUtYmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vYXNzZXRzL2ltZy9sb2dvLnBuZyk7ZAIHD2QWAgIBD2QWAgIBD2QWAmYPZBYKAgcPEA8WBh4NRGF0YVRleHRGaWVsZAUIQ2F0Z05hbWUeDkRhdGFWYWx1ZUZpZWxkBQhjYXRnY29kZR4LXyFEYXRhQm91bmRnZBAVBA9TZWxlY3QgQ2F0ZWdvcnkHRkxPV0VSUwZGUlVJVFMKVkVHRVRBQkxFUxUEATABNAExATIUKwMEZ2dnZ2RkAg0PEA8WBh8BBQpDZW50cmVOYW1lHwIFDENlbnRyZU51bWJlch8DZ2QQFR4JQUhNRURBQkFECEFNUklUU0FSBkJBUkFVVAlCZW5nYWx1cnUGQkhPUEFMDEJIVUJBTkVTSFdBUgpDSEFORElHQVJIB0NIRU5OQUkIREVIUkFEVU4FREVMSEkIR0FOR0FUT0sIR1VXQUhBVEkJSFlERVJBQkFEBkpBSVBVUgVKQU1NVQdLT0xLQVRBCUxBU0FMR0FPTgdMVUNLTk9XBk1VTUJBSQZOQUdQVVIGTkFTSElLBVBBVE5BClBJTVBBTEdBT04EUFVORQZSQUlQVVIGUkFOQ0hJBlNISU1MQQhTUklOQUdBUgpUUklWRU5EUlVNCFZBUkFOQVNJFR4BMQIzMgIzNgEyATMBNAE3AjE1AjM0ATgBOQIxMAIxMQIxMgIyMgE2AjM5AjE0ATUCMTYCMjMCMTcCNDACMjQCMzUCMjgCMTgCMTkCMjACNDEUKwMeZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZGQCFw8PZBYCHgdvbmNsaWNrBTVzZWxlY3RBbGxDZW50ZXIoJ1N5c3RlbS5XZWIuVUkuV2ViQ29udHJvbHMuTGlzdEJveCcpO2QCGQ8PZBYCHwQFNVJlbW92ZUFsbENlbnRlcignU3lzdGVtLldlYi5VSS5XZWJDb250cm9scy5MaXN0Qm94Jyk7ZAIjDw8WAh4HVmlzaWJsZWhkZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQUpY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRMc2JveENlbnRlckxpc3QVB5GC6UfPXNBmxBLvA2devnEGKA==',
'__VIEWSTATEGENERATOR': 'DBC76A8E',
'ctl00$ContentPlaceHolder1$drpCategoryName': '4',
'ctl00$ContentPlaceHolder1$LsboxCenterList': '1',
'ctl00$ContentPlaceHolder1$txtdate': '10/01/2019',
'__ASYNCPOST': 'true',
'ctl00$ContentPlaceHolder1$btnSearch': 'Search'
}
response = requests.post('http://nhb.gov.in/OnlineClient/categorywiseallvarietyreport.aspx?&menu.Menu=11', data=data, headers=headers)
print(response.text)
Upvotes: 1