用python模拟aspx表单请求



我试图从这个网站模拟aspx表单的工作- http://noidajalonline.com/NOIDAJAL/Consumer.aspx

但是有一些问题-在第一个post请求哪个响应应该包含表单中选择元素之一的值。由于某些原因,我在响应中得到这个文本- '0|error|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||'

太简单了!这个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'
    }
)

最新更新