PHP の cURL ライブラリを使用して、Web ページを簡単かつ効果的にクロールします。スクリプトを実行して、クロールした Web ページを分析するだけで、必要なデータをプログラムで取得できます。リンクから部分データを取得する場合でも、XML ファイルを取得してデータベースにインポートする場合でも、単に Web ページのコンテンツを取得する場合でも、cURL は強力な PHP ライブラリです。この記事では主にこのPHPライブラリの使い方について説明します。
cURL 設定を有効にする
まず、PHP でこのライブラリが有効になっているかどうかを確認する必要があります。この情報は、php_info() 関数を使用して取得できます。
phpinfo();
?>
Web ページに次の出力が表示される場合は、cURL ライブラリが有効になっていることを意味します。
これが表示された場合は、PHP を設定してこのライブラリを有効にする必要があります。 Windows プラットフォームを使用している場合、php.ini ファイルの設定を変更し、php_curl.dll を見つけて、前のセミコロンのコメントをキャンセルするだけです。以下に示すように:
//次の
extension=php_curl.dll のコメントを解除します
Linux を使用している場合は、編集時に PHP を再コンパイルする必要があります。「-」を追加します。 -with-curl」パラメータをconfigureコマンドに追加します。
小さな例
すべての準備ができたら、以下に小さなルーチンを示します:
//cURL オブジェクトを初期化します
$curl =curl_init();
//クロールする必要がある URL を設定します
curl_setopt($curl, CURLOPT_URL, 'http://cocre.com');
// ヘッダーを設定します
curl_setopt($curl, CURLOPT_HEADER, 1);文字列に変換するか、画面に出力します。
// cURL を実行し、Web ページをリクエストします
// URL リクエストを閉じます
var_dump($data);
?>
データのPOST方法
上記はWebページをクロールするコード、以下は特定のWebページにデータをPOSTするコードです。フォーム処理 URL http://www.example.com/sendSMS.php があり、2 つのフォーム フィールド (1 つは電話番号、もう 1 つはテキスト メッセージのコンテンツ) を受け入れることができるとします。
$phoneNumber = '13912345678';
$message = 'このメッセージはcurlとphpによって生成されました';
$curlPost = 'pNUMBER=' . urlencode ($message) . '&SUBMIT=Send';$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/sendSMS.php'); CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$data =curl_exec(); l_close( $ ch);
?>
上記のプログラムから、GET メソッドの代わりに CURLOPT_POST を使用して HTTP プロトコルの POST メソッドを設定し、CURLOPT_POSTFIELDS で POST データを設定していることがわかります。
プロキシサーバーについて
プロキシサーバーの使用例をご紹介します。強調表示されたコードに注目してください。コードは非常に単純なので、これ以上説明する必要はありません。
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'ユーザー:パスワード ');$data =curl_exec();curl_close($ch);
?>
SSL と Cookie について
HTTPS プロトコルである SSL については、CURLOPT_URL 接続の http:// を https に変更するだけです。 :/ /それでおしまい。もちろん、サイトを検証するために設定できる CURLOPT_SSL_VERIFYHOST というパラメーターもあります。
Cookie については、次の 3 つのパラメータを知っておく必要があります:
CURLOPT_COOKIE、対面セッションで Cookie を設定します。
CURLOPT_COOKIEJAR、セッション終了時に Cookie を保存します。
CURLOPT_COOKIEFILE、Cookie ファイル。
HTTPサーバー認証
最後に、HTTPサーバー認証について見てみましょう。
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com'); ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt(CURLOPT_USERPWD, '[ユーザー名]:[パスワード]') $data =curl_exec($ch); 詳細については、 を参照してください。関連する cURL マニュアルを参照してください。