PHPのcurl関数を使用して、模擬ログインを実装します。
Google検索からデータを抽出したいのですが、Google がソフトウェアによるデータのキャプチャを非常にブロックしていることがわかりました。以前は USER-AGENT を偽造することでデータをキャプチャできましたが、現在はキャプチャできません。仕事してないよ。パケット キャプチャ データを使用すると、Google が cookie を決定したため、Cookie がない場合は 302 ジャンプが直接返され、数十の 302 ジャンプが連続して存在し、データはまったくキャプチャできないことがわかりました。
したがって、検索コマンドを送信するときは、まず Cookie を抽出して保存し、保存した Cookie を使用して再度検索コマンドを送信し、データを正常にキャプチャする必要があります。これは実際には、フォーラムの模擬ログインと同じです。まず POST してログインし、Cookie を取得して保存し、その後 Cookie を使用してアクセスする必要があります。
PHP コードは次のとおりです:
コードは次のとおりです:
<?php header('Content-Type: text/html; charset=utf-8'); $cookie_file = dirname(FILE).'/cookie.txt'; //$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 サイトの他の関連記事を参照してください。