我遇到了问题。 我想使用CURL登录一个网站,但该页面会生成一个密钥,该密钥位于隐藏字段中。所以我必须抓住隐藏字段的值......之后我必须提交密码,电子邮件和抓取的密钥。
这可能吗?
希望你理解
由于
---- ----编辑 如果页面重新加载,隐藏字段中有一个新密钥..旧密钥不起作用
答案 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)
是的,是的。
$contents = file_get_contents(...);
)。$matches = preg_match(..., ...); $key = $matches[1];
)。$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));