ホームページ  >  記事  >  バックエンド開発  >  phpのcurl関数とクローリング163メーリングリストの紹介_PHPチュートリアル

phpのcurl関数とクローリング163メーリングリストの紹介_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:09:30941ブラウズ

これが表示された場合は、PHP チュートリアルを設定し、このライブラリを有効にする必要があります。 Windows プラットフォームを使用している場合、php.ini ファイルの設定を変更し、php_curl.dll を見つけて、前のセミコロンのコメントをキャンセルするだけです。以下に示すように:
//次の
extension=php_curl.dll のコメントを解除します

Linux を使用している場合は、編集時に Google ランキング用に php を再コンパイルする必要があります。— を追加します。 「-with-curl」パラメータをconfigureコマンドに追加します。
小さな例
すべての準備ができたら、ここに小さなルーチンがあります:
次のようにコードをコピーします:

//curlオブジェクトを初期化します
$curl =curl_init();
//設定を設定します。 URL を取得する必要があります
curl_setopt($curl,curlopt_url, 'http://jb51.net')
// ヘッダーを設定します
curl_setopt($curl,curlopt_header, 1);文字列で保存される結果 文字列は引き続き画面に出力されます。
curl_setopt($curl,curlopt_returntransfer, 1);
//curl を実行し、Web ページをリクエストします
$data =curl_exec($curl);
// URL リクエストを閉じます
curl_close($curl);取得したデータ
var_dump($data);

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

次のようにコードをコピーします:

$phonenumber = '13912345678';

$message = 'thisMessagewasgenerated bycurandphp'
$curlpost='pnumber='.urlencode($phonenumber); .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_postfields、$curlpost); );
curl_close($ch);
?>

上記のプログラムから、http プロトコルの post メソッドを設定するために、curlopt_postfields が使用されていることがわかります。投稿データ。
プロキシサーバーについて
以下はプロキシサーバーの使用例です。強調表示されているコードに注目してください。コードは非常に単純なので、これ以上説明する必要はありません。
次のようにコードをコピーします:
$ch =curl_init();
curl_setopt($ch,curlopt_url, 'http://www.example.com'); 1 );
curl_setopt($ch、curlopt_returntransfer、1);
curl_setopt($ch、curlopt_proxy、'ユーザー:パスワード'); ;

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



httpsチュートリアルプロトコルについては、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'); 1 );
curl_setopt($ch、curlopt_httpauth、curlauth_basic);
$data =curl_exec($ch); 見てみましょう163 個の電子メール アドレスのリストを取得するために、curl を使用するコードです
​​
端的に言えば、curl テクノロジは、ページのキャプチャやフォームの送信を実現するためのブラウザの動作をシミュレートすることであり、このテクノロジを通じて、多くの興味深い機能を実現できます。
コードをコピーします。コードは次のとおりです:

error_reporting(0);
//メールのユーザー名 (@163.com サフィックスなし)
$user = 'papatata_test';
//メールのパスワード
$pass = '000000';
//$mail_addr = uenucom@163.com';
//ログイン
$url = 'http://reg.163.com/logins.jsptutorial?type=1&url=http://entry.163 .com/coremail/fcg/ntesdoor2?lightweight%3d1%26verifycookie%3d1%26 language%3d-1%26style%3d-1';
$ch =curl_init($url);
//一時ファイル用のメッセージを作成します。 Cookie 情報を保存
$cookie = tempnam('.','~');
$referer_login = 'http://mail.163.com';
//返された結果はデフォルトの代わりに変数に保存されます。
curl_setopt($ch、curlopt_returntransfer、true);
curl_setopt($ch、curlopt_connecttimeout、true); の直接出力$ch,curlopt_referer, $referer_login);
$fields_post = array(
'ユーザー名'=> $user,
'パスワード'=> $pass,
'verifycookie'=>1,
'style'=> ;-1,
'product'=> 'mail163',
'seltype'=>-1,
'secure'=>'on'
$headers_login = array(
'user-agent' => 'mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.9) gecko/2008052906 firefox/3.0',
'referer' =>
);
$fields_string = '';
$fields_post as $key => $value
; = rtrim($fields_string, '&');
curl_setopt($ch,curlopt_cookiesession, true);
//接続を閉じるとき、サーバーから返された Cookie を次のファイルに保存します
curl_setopt($ch,curlopt_cookiejar, $クッキー );
curl_setopt($ch、curlopt_httpheader、$headers_login);
curl_setopt($ch、curlopt_postfields、$fields_string); ) ;
curl_close($ch);
//Jump
$url='http://entry.mail.163.com/coremail/fcg/ntesdoor2?lightweight=1&verifycookie=1& language=-1&style=-1&username=loki_wuxi' ;
$ch =curl_init($url);
$headers = array(
'user-agent' => 'mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.9) gecko/2008052906 Firefox/3.0'
);
curl_setopt($ch、curlopt_returntransfer、true);
curl_setopt($ch、curlopt_post、true); ;
curl_setopt($ch,curlopt_httpheader, $headers);
//以前に保存した Cookie 情報を一緒にサーバーに送信します
curl_setopt($ch,curlopt_cookiejar, $cookie);
$result =curl_exec($ch);
curl_close($ch);
//sid を取得
preg_match('/sid=[^"].*/', $result, $location);
$sid = substr ($location[0], 4, -1);
//file_put_contents('./result.txt', $sid);
//アドレス帳のアドレス
$url='http://g4a30.mail .163 .com/jy3/address/addrlist.jsp?sid='.$sid.'&gid=all';
$ch =curl_init($url);
$headers = array(
'user-agent' => ; ' mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.9) gecko/2008052906 firefox/3.0'
);
curl_setopt($ch,curlopt_returntransfer, true); );
curl_setopt($ch、curlopt_connecttimeout、120);
curl_setopt($ch、curlopt_httpheader、$headers);上部($ch,curlopt_cookiejar, $cookie);
$result =curl_exec($ch);
//file_put_contents('./result.txt', $result); ;
//コンテンツのクロールを開始します
preg_match_all('/]*>(.*?)]*>(.*?)/i', $result,$infos,preg_set_order); 1: 名前 2: メール
print_r($infos)>



http://www.bkjia.com/PHPjc/444781.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/444781.html

技術記事

これが表示された場合は、PHP チュートリアルを設定し、このライブラリを有効にする必要があります。 Windows プラットフォームを使用している場合、それは非常に簡単です。php.ini ファイルの設定を変更する必要があります...





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