我正在尝试通过此网站模拟aspx表单的工作 - http://noidajalonline.com/NOIDAJAL/Consumer.aspx
但有一些问题 - 在第一个帖子请求中哪个响应应包含表单中某个select元素的值。由于某种原因,我得到了这个文本作为回应 - ' 0 |错误| 500 ||'。
为什么会发生这件事?当我尝试从浏览器中使用此aspx表单时,此处也是同一请求的屏幕截图 - http://puu.sh/kfcN1/c7b3b991fb.png 这是我的代码:(它的python 2但我认为它也应该与python 3一起运行)。
#! python2
import requests
from lxml.html import fromstring
s = requests.Session()
main_search_html = s.get('http://www.noidajalonline.com/NOIDAJAL/Consumer.aspx').text
main_search = fromstring(main_search_html)
view_state = main_search.xpath('//input[@name="__VIEWSTATE"]/@value')[0]
event_validation = main_search.xpath('//input[@name="__EVENTVALIDATION"]/@value')[0]
payload = {
'ctl00$ScriptManager1' : 'ctl00$ContentPlaceHolder1$UpdatePanel1|ctl00$ContentPlaceHolder1$ddlsector',
'__EVENTTARGET' : 'ctl00$ContentPlaceHolder1$ddlsector',
'__EVENTARGUMENT' : '',
'__LASTFOCUS' : '',
'__VIEWSTATE' : view_state,
'__EVENTVALIDATION' : event_validation,
'ctl00$ContentPlaceHolder1$ddlsector' : '01',
'ctl00$ContentPlaceHolder1$txtflatno' : '',
'ctl00$ContentPlaceHolder1$txtCons_no' : '',
'__ASYNCPOST' : 'true',
}
post = s.post('http://www.noidajalonline.com/NOIDAJAL/Consumer.aspx', data = payload)
print(post.text) # Here i've got an error in response '0|error|500||'
答案 0 :(得分:0)
那太简单了!这个aspx表单只需要' User-Agent'在请求标题中。 所以,我只是将其中一行更改为:
post = s.post('http://www.noidajalonline.com/NOIDAJAL/Consumer.aspx', data = payload, headers = {
'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36'
}
)