我需要从website获取一些值。基本上我需要为每个城市获得区域。我正在使用Python和beautifulsoup。我在做的是:
首先向此页面发送获取请求并获取__VIEWSTATE和__EVENTVALIDATION以发出POST请求以获取特定州的城市。请点击此处查看其工作情况,我将为每个州提供城市。
< / LI>要获得区域,我需要使用新的__VIEWSTATE和__EVENTVALIDATION进行另一次POST,这次我需要发送city以及其他参数。但是我在这里收到错误:
505|error|500|Invalid postback or callback argument. Event validation is enabled using <pages enableeventvalidation="true"> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.|</pages>
我已经检查了firebug中我需要发送的每个参数/参数,以获取相应城市的区域但没有成功。也许根据我的问题是__VIEWSTATE或__EVENTVALIDATION。
请帮帮我
答案 0 :(得分:1)
你必须在一次会话调用中获取并传递__VIEWSTATE
和__EVENTVALIDATION
变量,否则在重新打开与服务器的连接时进行第二次POST调用时,它希望再接收一个{{1 }和__VIEWSTATE
!
所以基本上逻辑应如下:
答案 1 :(得分:0)
尝试添加__REQUESTDIGEST
表单字段,它是Sharepoint使用的验证字段。
另外,添加select元素的名称,其中states作为__EVENTTARGET
field:
__EVENTTARGET ctl00$ctl25$g_4828177f_5427_4b0f_a968_ad02dc3674ec$ctl01$ddlState
__REQUESTDIGEST 0xDF6A6E14C550004C4A8533A9F5D...,14 Jun 2012 10:13:34 -0000