curl脚本只是填写表单而不是提交它

时间:2012-08-19 19:29:38

标签: php curl

我有这个小问题。 我写了一个卷曲脚本,首先点击一个链接 然后填写链接提供的表单。

链接是http://www.fikeandfike.com/propertytax/Grundy/MainMenu.aspx?c=32

上的“包裹查询”

,表单位于http://www.fikeandfike.com/propertytax/Grundy/Inquiry.aspx

但我的问题是脚本只填写表单和 没有做任何事情

当我回应卷曲的结果 它显示填写的表格,但我想看到表格的结果

你可以告诉我为什么会这样吗? 你可以建议一些技巧来解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

正如评论中所提到的,问题是您尝试“刮”的网站是使用ASP.net构建的,ASP.net不会以传统方式使用表单数据。

我确实知道有人能成功地完成这项工作,但这很繁琐。需要注意的关键隐藏字段是:

  • __EVENTTARGET__EVENTARGUMENT:这些是在您提交表单时由Javascript设置的,但始终为相同的值。如果您使用浏览器调试工具(Firebug,URLParams等)来检查真实POST的结果,您将能够毫无问题地填写这些工具。
  • __VIEWSTATE:每次页面加载时都会重新生成,因此每次请求时都需要将其从加载的表单的HTML中删除。
  • __EVENTVALIDATION:此字段专门用于防止您尝试的欺骗行为。与__VIEWSTATE类似,它会在每次加载页面时重新生成,但它的存在可能意味着您一次只能更改一个字段,因为它将验证您针对之前状态提交的内容。< / LI>

我可能在这里的某些细节上错了,但这应该会给你一个开始......