从一个 HTTP 请求找出必需的最少参数


这个主要用于模拟浏览器发请求的时候,应用场景是抓其他网站的一个页面:我用 firebug 等工具抓到了一个请求,现在要用程序去模拟。

直接使用这个请求可能比较大,我想问现在有没有这样的工具,能帮我尝试出必需的最少的参数。因为目标网站没有 API ,我也不知道各个参数的意义,我是要自己摸索出哪些参数是必要的,哪些是不必要的。

比如原始的请求可能是:


 curl -H 'Cookie: session=1' -d "a=1&b=2" 'http://www.example.com/'

经测试发现:

  • 不带 b=2 这个参数,结果不变
  • 如果不带 Cookie ,会返回错误页面
  • 不带 a=1 ,也会返回错误页面

因此我们能得到最优的请求:


 curl -H 'Cookie: session=1' -d "a=1" 'http://www.example.com/'

参数应该包括:

  • 各种 HTTP Header ,比如 Referer 、 Cookie 、 User-Agent 等
  • URL 中的参数
  • POST 请求中的参数

用户的输入应该有:正确页面中的特征串、错误页面的特征串。或者只需要正确页面的特征串。

虽然自己写一个脚本也不是不可以,不过如果有别人已经写好的东西的话...

http curl

女王请用力些 11 years ago

这种需求的个性实在太强了——个性强过了一定程度,费尽心思去找就绝对不是个好选择了。

活用Python的URL字符串分析和构造库、 requests 请求库是个好主意。

相信我,自己搞一个绝对比费尽心思去找(最后还可能不适用),省时间也省精力。

我真的很纯洁 answered 11 years ago

Your Answer