ホームページ  >  記事  >  バックエンド開発  >  PHP はログインをシミュレートし、CURL を通じてデータを取得します

PHP はログインをシミュレートし、CURL を通じてデータを取得します

不言
不言オリジナル
2018-04-03 15:21:291588ブラウズ


cURL は強力な PHP ライブラリです。PHP の cURL ライブラリを使用すると、Web ページを簡単かつ効果的にクロールしてコンテンツを収集し、Cookie を設定してシミュレートされたログイン Web ページを完成させることができます。curl は豊富な機能を提供し、開発者は PHP を使用できます。マニュアルの cURL について。




/*ログインをシミュレートし、CURL を通じてデータを取得します
一部の Web サイトでは、Web ページを効果的にクロールしてコンテンツを収集する前に、Web サイトにログインする必要があります。これには、Web ページへのログインをシミュレートするために Cookie を設定する必要があります。PHP の Curl は、Web コンテンツの取得において比較的効率的であり、マルチスレッドをサポートしますが、file_get_contents() の効率はわずかに劣ります。ログインをシミュレートするコードは次のとおりです。
*/
function login_post($url, $cookie, $post){
$ch =curl_init() //curl モジュールを初期化します
curl_setopt( $ ch, CURLOPT_URL, $url); //送信したアドレスにログインします
curl_setopt($ch, CURLOPT_HEADER, 0) //ヘッダー情報を表示するかどうか
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); //自動かどうか 返された情報を表示
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie) //Cookie情報を設定し、指定したフォルダーに保存
curl_setopt($ch, CURLOPT_POST, 1); /POSTメソッドで送信
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));//実行する情報
curl_exec($ch); //CURLを実行
curl_close($ch);
}
/*
上記の例で宣言された関数 login_post() は、URL アドレス、Cookie ファイル
、投稿データ (ユーザー名とパスワードなど) を提供する必要があります。 http_build_query()
関数に注意してください。この関数を通じてログインが成功した場合、配列は接続された文字列に変換できます。
成功したログイン ページの情報を取得する必要があります。関数を宣言するコードは次のとおりです。
*/
function get_content($url, $cookie){
$ch =curl_init() //curl モジュールを初期化します
curl_setopt($ ch, CURLOPT_URL , $url); //ログイン時に送信されたアドレス
curl_setopt($ch, CURLOPT_HEADER, 0) //ヘッダー情報を表示するかどうか
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //返された情報を自動的に表示するかどうか
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);//Cookie情報を設定し、指定したフォルダーに保存します
$rs =curl_exec($ch); //実行ページのコンテンツを転送するにはcurl
curl_close($ch);
return $rs; //文字列を返す
}
/*
get_content()curlopt_cookiefileを使用して保存されたCookie情報を読み取りますログイン
最後に、ページコンテンツの戻りについて話しましょう。私たちの目的は、模擬ログイン後の情報、つまり、通常のログインに成功した後にのみ取得できる有益な情報を取得することです。以下にコード例を示します
*。 /
$post = 配列 (
'_username' => 'g@ydma.cn',
'_password' => '123456',
'_submit' => 'ログイン'
); = "http://www.ydma.cn/login/check"; //ログインアドレスは元のWebサイトと同じです
$cookie = dirname(__FILE__).'/cookie_ydma.txt';保存するCookieのパス
$url2 = "http://www.ydma.cn/course/59" //ログイン後に情報を取得するアドレス
login_post($url, $cookie, $ post); // 模擬ログインを呼び出します

$content = get_content($url2, $cookie); // ログイン後、get_content() 関数を呼び出して、ログイン後に指定されたページ情報を取得します
@unlik ($cookie); // Cookie ファイルを削除します

file_put_contents('save.txt', $content); // キャプチャしたページのコンテンツを保存します
関連する推奨事項: 特別なパラメータを取得する

URL 内の # などの記号

以上がPHP はログインをシミュレートし、CURL を通じてデータを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。