ホームページ > php教程 > php手册 > Web ページを簡単かつ効率的にスクレイピングするための PHP の cURL ライブラリ

Web ページを簡単かつ効率的にスクレイピングするための PHP の cURL ライブラリ

WBOY
リリース: 2016-06-21 08:56:27
オリジナル
1164 人が閲覧しました

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 を再コンパイルする必要があります。コンパイル パラメータをオンにする必要があります。configure コマンドに「-with-curl」パラメータを追加します。

小さな例

すべての準備ができたら、次の小さなルーチンを実行します:

// 初始化一个 cURL 对象
$curl = curl_init();

// 设置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, 'http://cocre.com');

// 设置header
curl_setopt($curl, CURLOPT_HEADER, 1);

// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

// 运行cURL,请求网页
$data = curl_exec($curl);

// 关闭URL请求
curl_close($curl);

// 显示获得的数据
var_dump($data);
?>

データの投稿方法

上記は Web ページをクロールするコードで、次は Web ページにデータを POST するコードです。フォーム処理 URL http://www.example.com/sendSMS.php があり、2 つのフォーム フィールド (1 つは電話番号、もう 1 つはテキスト メッセージのコンテンツ) を受け入れることができるとします。

$phoneNumber = '13912345678';
$message = 'This message was generated by curl and php';
$curlPost = 'pNUMBER=' . urlencode($phoneNumber) . '&MESSAGE=' . urlencode($message) . '&SUBMIT=Send';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/sendSMS.php');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec();curl_close($ch);
?>

上記のプログラムから、GET メソッドの代わりに CURLOPT_POST を使用して HTTP プロトコルの POST メソッドを設定し、CURLOPT_POSTFIELDS で POST データを設定していることがわかります。

プロキシサーバーについて

プロキシ サーバーの使用方法の例を次に示します。強調表示されたコードに注目してください。コードは非常に単純なので、これ以上説明する必要はありません。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');
$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、クッキー ファイル。

HTTP サーバー認証

最後に、HTTP サーバー認証について見てみましょう。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt(CURLOPT_USERPWD, '[username]:[password]')

$data = curl_exec();
curl_close($ch);
?>

詳細については、関連する cURL マニュアルを参照してください。



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート