3

我正在尝试抓取一个接收 POST 数据以返回正确页面的网站(没有 POST,它返回 15 个结果,POST 数据返回所有结果)。

目前我的代码是这样的:

$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,"http://www.thisismyurl.com/awesome");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, XXXXXX);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result= curl_exec($curl);

我知道我需要将我的 postfields 放入充满“XXXXXX”的空间中,我只是不知道在哪里挖掘 post 字段/值以及如何将它们构造成我传递到那里的变量。

任何帮助将不胜感激!

4

2 回答 2

2

如果它是一个简单的表单,那么只需提取所有表单字段并将它们复制到您的脚本中。如果它是某种动态形式,例如 javascript 构建请求并使用 ajax,那么您可以使用开发人员工具(例如 Firefox 的 Firebug Net 选项卡、HTTPfox 等)嗅探数据并在发送数据时提取数据。

无论哪种方式,一旦您知道要发送哪些字段/数据,其余的应该(相对)容易复制/构建。

于 2012-01-08T03:32:46.290 回答
2

我想有人可能会寻找代码来替换 XXXXXX。我使用以下代码。

$ch = curl_init();
$timeout=5;
$name=$_REQUEST['name'];
$pass=$_REQUEST['pass'];
$data = array('username' => '$name', 'password' => '$pass');
$data=http_build_query($data);
curl_setopt($ch,CURLOPT_URL,"superawsomesite.com"); 
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
于 2012-05-20T21:19:00.050 回答