1

我有这个小问题。我编写了一个 curl 脚本,首先单击一个链接,然后填写该链接提供的表格。

链接是http://www.fikeandfike.com/propertytax/Grundy/MainMenu.aspx?c=32上的“包裹查询”

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

但我的问题是脚本只是填写表格而不用它做任何事情

当我回显 curl 的结果时,它显示表格已填满,但我想查看表格的结果

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

4

1 回答 1

0

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

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

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

我在这里的一些细节上可能是错误的,但这应该给你一个开始的地方......

于 2012-08-20T23:45:22.583 回答