【问题标题】:EVENTVALIDATION error while scraping asp.net page抓取 asp.net 页面时出现 EVENTVALIDATION 错误
【发布时间】:2012-06-17 07:55:54
【问题描述】:

我需要从这个website 中获取一些值。基本上我需要获得每个城市的区域。我为此使用 Python 和 beautifulsoup。我正在做的是:

  1. 首先向此页面发出 Get 请求并获取 __VIEWSTATE 和 __EVENTVALIDATION 以发出 POST 请求以获取特定州的城市。到此为止,它正在工作,我正在获取每个州的城市。

  2. 要获取区域,我需要使用新的 __VIEWSTATE 和 __EVENTVALIDATION 进行另一个 POST,这一次我需要发送城市以及其他参数。但我在这里遇到错误:

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。

请帮帮我

【问题讨论】:

  • 您不需要在客户端更改 ViewState。
  • 我没有改变 __VIEWSTATE...我从服务器返回的 html 中获取它
  • 您是否正在回发 ViewState 和 EventValidation 的值?如果不是,那么这就是您的问题所在:您必须将这些变量发回服务器,因为服务器。
  • 您是否发送第一个请求获得的 cookie?
  • @ArtemKoshelev 我认为此请求不需要 cookie。因为我在没有发送 cookie 数据的情况下获得了城市数据。

标签: asp.net python beautifulsoup urllib2


【解决方案1】:

您必须在一次会话调用中获取并传递__VIEWSTATE__EVENTVALIDATION 变量,否则在重新打开与服务器的连接时执行第二次POST 调用时,它希望已经收到另一个__VIEWSTATE__EVENTVALIDATION

所以基本上逻辑应该是这样的:

  • curl_init()
  • curl GET __VIEWSTATE 和 __EVENTVALIDATION
  • *这里有一些逻辑 *
  • curl POST 解析出 __VIEWSTATE 和 __EVENTVALIDATION
  • * 这里有一些逻辑 *
  • curl_close();

【讨论】:

    【解决方案2】:

    尝试添加__REQUESTDIGEST表单域,它是Sharepoint使用的验证域。 另外,添加带有状态的选择元素的名称作为__EVENTTARGET 字段的值:

    __EVENTTARGET   ctl00$ctl25$g_4828177f_5427_4b0f_a968_ad02dc3674ec$ctl01$ddlState
    __REQUESTDIGEST 0xDF6A6E14C550004C4A8533A9F5D...,14 Jun 2012 10:13:34 -0000
    

    【讨论】:

    • 我已经用我的 POST 请求发送了这些字段,仍然没有成功:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 2012-05-10
    • 2010-10-17
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    相关资源
    最近更新 更多