1

我正在尝试抓取一个网站,该网站通过单击一个按钮返回给我一个要下载的文件。我正在尝试使用 Chrome 调试工具仅获取此信息,并且无法弄清楚如何在 POST 操作后面恢复真实 URL:

请求标头:

POST /download.php HTTP/1.1
Host: www.rmdown.com
Connection: keep-alive
Content-Length: 385
Cache-Control: no-cache
Pragma: no-cache
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Origin: http://www.rmdown.com
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryeqA3pQupG0ndfLMZ
Referer: http://www.rmdown.com/link.php?hash=1333f4f84bb41d5adc0f61e8f5a4658460da70b2737
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4

请求有效载荷:

------WebKitFormBoundaryeqA3pQupG0ndfLMZ
Content-Disposition: form-data; name="ref"

1333f4f84bb41d5adc0f61e8f5a4658460da70b2737
------WebKitFormBoundaryeqA3pQupG0ndfLMZ
Content-Disposition: form-data; name="reff"

MTM3OTQ4NzQwMQ==
------WebKitFormBoundaryeqA3pQupG0ndfLMZ
Content-Disposition: form-data; name="submit"

download
------WebKitFormBoundaryeqA3pQupG0ndfLMZ--

响应标头

HTTP/1.1 200 OK
Date: Wed, 18 Sep 2013 07:35:53 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.3.3
Content-Disposition: attachment; filename="3f4f84bb41d5adc0f61e8f5a4658460da70b2737.torrent"
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 43428
Connection: close
Content-Type: application/force-download

任何想法?

4

1 回答 1

2

您向 ( http://www.rmdown.com/download.php)发出 POST 请求的 URL真正的 URL。

服务器如何确定用什么内容来响应对该 URL 的 POST 请求是服务器内部的,对客户端是不透明的。

可能性包括:

  • 从服务器硬盘上的文件中读取数据
  • 从另一个 URL 读取数据
  • 返回 Location 标头以将客户端发送到其他地方(尽管在这种情况下不是)
  • 从数据库中提取六个字段并使用模板将它们放在一起
  • 随机生成一些字节
于 2013-09-18T08:01:22.043 回答