我创建了一个页面,通过表单模拟网站上的登录:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<form action="https:/mysite/login.do" method="POST">
<p>Username: <input type="text" name="login" value="username" /></p>
<p>Password: <input type="text" name="password" value ="password" /></p>
<p><input type="submit"></p>
</form>
</body>
</html>
自定义表单似乎有效,我可以使用我的页面进行身份验证。现在我想做的是找到一种方法来解析当我按下“提交”按钮时获得的页面,而不是显示它。我试图通过使用 php 简单的 dom 库来实现这一点,但我无法用它发帖。我使用的代码是:
$curl = curl_init();
$data = array('login' => 'username', 'password' => 'password');
curl_setopt($curl,CURLOPT_URL,"https://www.myurl/login.do");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS,$data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result= curl_exec($curl);
echo $result;
include ('simple_dom_parser.php');
$content = str_get_html($result);
$link= $content->find('a');
$ref=$link->href;
echo '<div>'.$link.'</div>';
我也尝试过这样的事情:
$request = array(
'http' => array(
'method' => 'POST',
'content' => http_build_query(array(
'Item' => 'Value',
'Item2' => 'Value2'
)),
)
);
$context = stream_context_create($request);
$html = file_get_html('http://www.google.com', false, $context);
但没有结果。
有人有什么建议吗?