ホームページ  >  記事  >  バックエンド開発  >  PHP CURL が Cookie を取得してログイン メソッドをシミュレートするコード例

PHP CURL が Cookie を取得してログイン メソッドをシミュレートするコード例

怪我咯
怪我咯オリジナル
2017-07-10 10:03:492387ブラウズ

PHPのcurl関数を使用して、模擬ログインを実装します。

Google検索からデータを抽出したいのですが、Google がソフトウェアによるデータのキャプチャを非常にブロックしていることがわかりました。以前は USER-AGENT を偽造することでデータをキャプチャできましたが、現在はキャプチャできません。仕事してないよ。パケット キャプチャ データを使用すると、Google が cookie を決定したため、Cookie がない場合は 302 ジャンプが直接返され、数十の 302 ジャンプが連続して存在し、データはまったくキャプチャできないことがわかりました。
したがって、検索コマンドを送信するときは、まず Cookie を抽出して保存し、保存した Cookie を使用して再度検索コマンドを送信し、データを正常にキャプチャする必要があります。これは実際には、フォーラムの模擬ログインと同じです。まず POST してログインし、Cookie を取得して保存し、その後 Cookie を使用してアクセスする必要があります。
PHP コードは次のとおりです:

コードは次のとおりです:

<?php
header(&#39;Content-Type: text/html; charset=utf-8&#39;);

$cookie_file = dirname(FILE).&#39;/cookie.txt&#39;;
//$cookie_file = tempnam("tmp","cookie");

//先获取cookies并保存
$url = "http://www.google.com.hk";
$ch = curl_init($url); //初始化
curl_setopt($ch, CURLOPT_HEADER, 0); //不返回header部分
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接输出
curl_setopt($ch, CURLOPT_COOKIEJAR,  $cookie_file); //存储cookies
curl_exec($ch);
curl_close($ch);

//使用上面保存的cookies再次访问
$url = "http://www.google.com.hk/search?oe=utf8&ie=utf8&source=uds&hl=zh-CN&q=qq";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); //使用上面获取的cookies
$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>

以上がPHP CURL が Cookie を取得してログイン メソッドをシミュレートするコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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