php スヌーピーの使用法: 1. Web ページのコンテンツをキャプチャする [fetch($URI)] 2. HTML タグやその他の無関係なデータを削除する [fetchtext($URI)] 3. [fetchform] ($ URI)] Web ページ内のフォームのコンテンツを返します。
このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 5.6、DELL G3 コンピューター。
php スヌーピーの使用法:
スヌーピー クラスのメソッドと例:
1、fetch($URI)
これは、Web ページのコンテンツをクロールするために使用されるメソッドです。
$URI パラメータは、クロールされた Web ページの URL アドレスです。
取得した結果は $this->results に保存されます。
フレームをスクレイピングしている場合、スヌーピーは各フレームを追跡して配列に保存し、$this->results に保存します。
2, fetchtext($URI)
このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグやその他の無関係なデータを削除することです。 Web ページ内のテキスト コンテンツのみを返します。
3, fetchform($URI)
このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグやその他の無関係なデータを削除することです。のみ Web ページ内のフォームコンテンツ (フォーム) を返します。
4, fetchlinks($URI)
このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグやその他の無関係なデータを削除することです。のみ Web ページ内のリンクを返します。
デフォルトでは、相対リンクは自動的に完成され、完全な URL に変換されます。
5, submit($URI,$formvars)
このメソッドは、$URL で指定されたリンク アドレスに確認フォームを送信します。 $formvars はフォームパラメータを格納する配列です。
6, submittext($URI,$formvars)
このメソッドは submit() に似ていますが、唯一の違いは、このメソッドが HTML タグなどを削除することです。無関係な情報データ、ログイン後の Web ページ内のテキストコンテンツのみが返されます。
7, submitlinks($URI)
このメソッドは submit() に似ていますが、唯一の違いは、このメソッドが HTML タグやその他の無関係なデータを削除することです。のみ Web ページ内のリンクを返します。
デフォルトでは、相対リンクは自動的に完成され、完全な URL に変換されます。
Snoopy コレクション クラスの属性: (デフォルト値は括弧内)
$host 接続されているホスト
$port 接続されているポート
$proxy_host 使用するプロキシ ホスト (存在する場合)
$proxy_port 使用するプロキシ ホスト ポート (存在する場合)
$agent ユーザー エージェント マスカレード (Snoopy v0.1 )
$リファラーソース情報 (ある場合)
#$cookies クッキー (ある場合)##$rawheaders その他のヘッダー情報 (ある場合)
$maxredirs リダイレクトの最大数、 0=許可されません (5)
$offsiteok オフサイトへのリダイレクトを許可するかどうか (true)
$expandlinks すべてのリンクをリンクするかどうか 完全なアドレスを入力します (true)
$user 認証ユーザー名 (存在する場合)
$pass 認証ユーザー名 (存在する場合)
$accept http accept Type (image/gif、image/x-xbitmap、image/ jpeg、image/pjpeg、*/*)
$error エラーがあればどこに報告するか サーバーから返された
$response_code 応答コード
$headers ヘッダー情報サーバーから返された
$maxlength 返されるデータの最大長
$read_timeout 読み取り操作のタイムアウト (PHP 4 Beta 4 が必要) 設定 0 はタイムアウトがないことを意味します
$timed_out If読み取り操作がタイムアウトすると、この属性は true を返します (PHP 4 Beta 4 が必要)
$maxframes 追跡できる最大フレーム数
$status キャプチャされた http
$temp_dir Web サーバーが書き込むことができる一時ファイル ディレクトリ (/tmp)
$curl_path cURL バイナリのディレクトリ。cURL バイナリがない場合は、false
# に設定します。##以下は例です:
#コードは次のとおりです:
include "Snoopy.class.php"; $snoopy = new Snoopy; $snoopy->proxy_host = "https://www.jb51.net"; $snoopy->proxy_port = "80"; $snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)"; $snoopy->referer = "https://www.jb51.net"; $snoopy->cookies["SessionID"] = 238472834723489l; $snoopy->cookies["favoriteColor"] = "RED"; $snoopy->rawheaders["Pragma"] = "no-cache"; $snoopy->maxredirs = 2; $snoopy->offsiteok = false; $snoopy->expandlinks = false; $snoopy->user = "joe"; $snoopy->pass = "bloe"; if($snoopy->fetchtext("https://www.jb51.net")) { echo "<PRE>".htmlspecialchars($snoopy->results)."\n"; } else echo "error fetching document: ".$snoopy->error."\n";
#コードは次のとおりです次のとおりです:
<?php $url = "https://www.jb51.net"; include("snoopy.php"); $snoopy = new Snoopy; $snoopy->fetch($url); //获取所有内容 echo $snoopy->results; //显示结果 //可选以下 $snoopy->fetchtext //获取文本内容(去掉html代码) $snoopy->fetchlinks //获取链接 $snoopy->fetchform //获取表单 ?>
フォームの送信
コードは次のとおりです:
<?php $formvars["username"] = "admin"; $formvars["pwd"] = "admin"; $action = "https://www.jb51.net";//</a>表单提交地址 $snoopy->submit($action,$formvars);//$formvars为提交的数组 echo $snoopy->results; //获取表单提交后的 返回的结果 //可选以下 $snoopy->submittext; //提交后只返回 去除html的 文本 $snoopy->submitlinks;//提交后只返回 链接 ?>
フォームが送信されたので、さまざまなことができるようになります。次に、IP とブラウザを偽装しましょう。
偽装ブラウザ
<?php
$formvars["username"] = "lanfengye";
$formvars["pwd"] = "lanfengye";
$action = "https://www.jb51.net";
include "snoopy.php";
$snoopy = new Snoopy;
$snoopy->cookies["PHPSESSID"] = 'fc106b1918bd522cc863f36890e6fff7'; //伪装sessionid
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)"; //伪装浏览器
$snoopy->referer = "https://www.jb51.net"; //伪装来源页地址 http_referer
$snoopy->rawheaders["Pragma"] = "no-cache"; //cache 的http头信息
$snoopy->rawheaders["X_FORWARDED_FOR"] = "127.0.0.101"; //伪装ip
$snoopy->submit($action,$formvars);
echo $snoopy->results;
?>
例:
ps: ここでの IP の偽装は、実際には http ヘッダーを偽装しているため、REMOTE_ADDR
を通じて取得された IP は偽装できませんが、HTTP ヘッダー (種類プロキシを防ぐことができます)、独自の IP を作成できます。 コードの検証方法について簡単に説明します。 まず、通常のブラウザを使用してページを表示し、検証コードに対応するセッション ID を見つけて、そのセッション ID と検証を書き留めます。次へ スヌーピーを使って偽装するだけです。
原則:
同じセッションIDであるため、取得される確認コードは最初に入力したものと同じです。 場合によっては、さらに多くのことを捏造する必要があるかもしれません。スヌーピーが完全に私たちのために考えてくれました。<?php $snoopy->proxy_host = "https://www.jb51.net"; $snoopy->proxy_port = "8080"; //使用代理 $snoopy->maxredirs = 2; //重定向次数 $snoopy->expandlinks = true; //是否补全链接 在采集的时候经常用到 // 例如链接为 /images/taoav.gif 可改为它的全链接 <a href="https://www.jb51.net/images/taoav.gif">https://www.jb51.net/images/taoav.gif</a> $snoopy->maxframes = 5 //允许的最大框架数 //注意抓取框架的时候 $snoopy->results 返回的是一个数组 $snoopy->error //返回报错信息 ?>
以上がphpスヌーピーの使い方は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。