フォームを介してサイトへのログインをシミュレートするページを作成しました。
<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);
しかし、結果はありません。
誰か提案はありますか?