ホームページ >バックエンド開発 >PHPチュートリアル >PHPデータ取得クラスSnoopyの使用
PHPコレクション スヌーピー 詳細説明
PHPコレクションツール スヌーピーアプリケーション 詳細説明
スヌーピーは、ブラウザの機能をシミュレートするために使用され、Webコンテンツの取得やフォームの送信ができるPHPクラスです。 Snoopy を正しく動作させるには、サーバーの PHP バージョンが 4 以降であり、基本的な LAMP サービスでサポートされる PCRE (Perl 互換正規表現) をサポートしている必要があります。
1. スヌーピーのいくつかの機能:
1. Web ページのコンテンツを取得します fetch
2. Web ページのテキストコンテンツを取得します (HTML タグを削除します) fetchtext
3. Web ページのリンクを取得し、fetchlinks fetchform を作成します
4. プロキシホストをサポートします
5. 基本的なユーザー名/パスワード検証をサポートします
6. user_agent、リファラー(ソース)、Cookie、ヘッダーコンテンツ(ヘッダーファイル)の設定をサポートします
7. ブラウザーのリダイレクトをサポートし、リダイレクトの深さを制御します
8. できるWeb ページ内のリンクを高品質の URL に展開します (デフォルト)
9. データを送信して戻り値を取得します
10. HTML フレームワークの追跡をサポートします
11. リダイレクト時の Cookie の受け渡しをサポートします。PHP4 以降が必要です。 PHP クラスなので拡張する必要はありません。サーバーがcurlをサポートしていない場合に最適です。
2. クラスメソッド:
fetch($URI)
————–
Webページのコンテンツをキャプチャするために使用されるメソッドです。 $URI パラメータは、クロールされた Web ページの URL アドレスです。取得した結果は $this->results に保存されます。フレームをスクレイピングしている場合、スヌーピーは各フレームを追跡して配列に保存し、$this->results に保存します。
fetchtext($URI)
——————
このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグやその他の無関係なデータを削除し、Web ページ内のテキスト コンテンツのみを返すことです。
fetchform($URI)
——————
このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグとその他の無関係なデータを削除し、フォームのコンテンツ (フォーム) のみを返すことです。ウェブページ。
fetchlinks($URI)
————-
このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグやその他の無関係なデータを削除し、Web ページ内のリンクのみを返すことです。
デフォルトでは、相対リンクは自動的に完成され、完全な URL に変換されます。
submit($URI,$formvars)
——————-
このメソッドは、$URLで指定されたリンクアドレスに確認フォームを送信します。 $formvars はフォームパラメータを格納する配列です。
submittext($URI,$formvars)
————————–
このメソッドは submit() に似ていますが、唯一の違いは、このメソッドが HTML タグとその他の無関係なデータを削除し、ページのみを返すことです。ログイン後のテキストコンテンツ。
submitlinks($URI)
————-
このメソッドは submit() と似ていますが、唯一の違いは、このメソッドが HTML タグやその他の無関係なデータを削除し、Web ページ内のリンクのみを返すことです。
デフォルトでは、相対リンクは自動的に完成され、完全な URL に変換されます。
3. クラス属性: (括弧内はデフォルト値)
$host 接続されているホスト
$port 接続されているポート
$proxy_host 使用されるプロキシ ホスト (存在する場合)
$proxy_port 使用されるプロキシ ホスト ポート (存在する場合)
$agentユーザー エージェント カモフラージュ (Snoopy v0.1)
$referer ソース情報 (存在する場合)
$cookies Cookie (存在する場合)
$rawheaders その他のヘッダー情報 (存在する場合)
$maxredirs 最大重み リダイレクト数、0=許可されない (5)
$offsiteok オフサイトへのリダイレクトを許可するかどうか (true)
$expandlinks 完全なアドレスへのすべてのリンクを完了するかどうか (true)
$user 認証ユーザー名 (存在する場合) 存在する場合
$pass 認証ユーザー名 (存在する場合)
$accept http 受け入れタイプ (image/gif、image/x-xbitmap、image/jpeg、image/pjpeg、*/*)
$error エラーがある場合、どこに報告するか
$response_code サーバーから返された応答コード
$headers サーバーから返されたヘッダー情報
$maxlength 返された最長のデータ長
$read_timeout 読み取り操作のタイムアウト (PHP 4 Beta 4+ が必要)
タイムアウトなしの場合は 0 に設定
$timed_out 読み取り操作がタイムアウトした場合、これ属性は true を返します (PHP 4 Beta 4+ が必要)
$maxframes 追跡できる最大フレーム数
$status キャプチャされた http のステータス
$temp_dir Web サーバーは一時ファイル ディレクトリ (/tmp) に書き込むことができます
$curl_path cURL バイナリ ディレクトリ。cURL バイナリがない場合は false に設定します。
4. 以下はデモです
$snoopy = new Snoopy- >proxy_host = "www .baidu.com";
$snoopy->proxy_port = "8080";
$snoopy->agent = "(互換性; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->リファラー = "http://www.baidu.com/";
$snoopy->cookies["セッションID"] = 238472834723489l;$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->rawheaders["Pragma"] = "キャッシュなし";
$snoopy->maxredirs = 2;
$snoopy->オフサイトok = false;
$snoopy->expandlinks = false;
$スヌーピー->ユーザー = "ジョー";
$snoopy->pass = "ブルー";
if($snoopy->fetchtext("http://www.baidu.com"))
{
echo "
".htmlspecialchars($snoopy->results)."ん";