CURL获取信息并使用它登录

时间:2011-08-24 14:08:55

标签: php curl

我遇到了问题。 我想使用CURL登录一个网站,但该页面会生成一个密钥,该密钥位于隐藏字段中。所以我必须抓住隐藏字段的值......之后我必须提交密码,电子邮件和抓取的密钥。

这可能吗?

希望你理解

由于

---- ----编辑 如果页面重新加载,隐藏字段中有一个新密钥..旧密钥不起作用

3 个答案:

答案 0 :(得分:3)

是的,这是可能的。基本步骤是:

1. Fetch form
2. Run returned data through DOMdocument to extract the hidden form field's value
3. Post login data, including the key value from step #2
4. ???
5. Profit

答案 1 :(得分:0)

是的,是的。

  1. 将页面内容加载到变量中(例如$contents = file_get_contents(...);)。
  2. 现在,解析它以便您可以获取隐藏的密钥(例如$matches = preg_match(..., ...); $key = $matches[1];)。
  3. 现在,使用隐藏密钥(例如$context = streamcontextcreate(...); $data = file_get_contents(..., false, $context);)发布请求。

答案 2 :(得分:0)

是的,这是可能的。

您甚至可以使用

抓取该页面
  

$ source = htmlspecialchars(file_get_contents($ url));

然后使用strpos,substr等获取该字段的信息(这是最简单的方法)

然后用这个函数发布它

  

$ urltopost = $ url

     

$ datatopost = array($ name => $ value);

     

$ ch = curl_init($ urltopost);

     

curl_setopt($ ch,CURLOPT_POST,true);

     

curl_setopt($ ch,CURLOPT_POSTFIELDS,$ datatopost);

     

curl_setopt($ ch,CURLOPT_RETURNTRANSFER,true);

     

$ returndata = htmlspecialchars(curl_exec($ ch));