ホームページ php教程 php手册 スヌーピーの強力なPHPコレクションクラスの使用例コード

スヌーピーの強力なPHPコレクションクラスの使用例コード

Jun 21, 2016 am 08:56 AM
gt html http snoopy

ダウンロード アドレス: http://www.jb51.net/codes/33397.html

スヌーピーのいくつかの機能:

1 Web ページのコンテンツを取得します。
2 を取得します。 Web ページのコンテンツ テキスト コンテンツ (HTML タグの削除) fetchtext
3 Web ページのリンクを取得、フォーム fetchlinks fetchform
4 プロキシ ホストをサポート
5 基本的なユーザー名/パスワード検証をサポート
6 user_agent 設定をサポートReferer(origin)、Cookie およびヘッダー コンテンツ (ヘッダー ファイル)
7 はブラウザーのリダイレクトをサポートし、リダイレクトの深さを制御できます
8 Web ページ内のリンクを高品質の URL に拡張できます (デフォルト)
9 データを送信します戻り値を取得します
10 トラッキング HTML フレームワークをサポート
11 リダイレクト時の Cookie の受け渡しをサポート
PHP クラスなので、サーバーを展開する必要がないため、PHP 4 以降が必要です。最適な選択は

クラス メソッドです。

fetch($URI)
————–

これは、 Web ページのコンテンツを取得します。
$URI パラメータは、クロールされた Web ページの URL アドレスです。
取得した結果は $this->results に保存されます。
フレームをスクレイピングしている場合、スヌーピーは各フレームを追跡して配列に保存し、$this->results に保存します。

fetchtext($URI)
——————

このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグやその他の無関係なデータを削除することです。 、Web ページ内のテキスト コンテンツのみを返します。

fetchform($URI)
——————

このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグとその他の無関係なデータを削除することです。 、のみ Web ページ内のフォーム コンテンツ (フォーム) を返します。

fetchlinks($URI)
————-

このメソッドは fetch() に似ていますが、唯一の違いは、このメソッドが HTML タグとその他の無関係なデータを削除することです。 Web ページ内のリンクのみが返されます。
デフォルトでは、相対リンクは自動的に完成され、完全な URL に変換されます。

submit($URI,$formvars)
————————-

このメソッドは、$URL で指定されたリンク アドレスに確認フォームを送信します。 $formvars はフォームパラメータを格納する配列です。

submittext($URI,$formvars)
————————–

このメソッドは submit() に似ていますが、唯一の違いは、このメソッドが削除することです。 HTML タグやその他の無関係なデータ、ログイン後の Web ページ内のテキスト コンテンツのみが返されます。

submitlinks($URI)
————-

このメソッドは submit() と似ていますが、唯一の違いは、このメソッドが HTML タグとその他の無関係なデータを削除することです。 Web ページ内のリンクのみが返されます。
デフォルトでは、相対リンクは自動的に完成され、完全な URL に変換されます。

クラス属性: (デフォルト値は括弧内)

$host 接続先のホスト
$port 接続先のポート
$proxy_host 接続先のプロキシ ホストuse (存在する場合)
$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 に設定します。

以下はデモです。

コードをコピーします。、コードは次のとおりです:

include "Snoopy.class.php";
$snoopy = 新しいスヌーピー;
$snoopy->proxy_host = "http://www.jb51.net"; ;proxy_port = "80";
$snoopy->agent = "(互換性; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)";
$snoopy->referer = "http:// www.jb51.net";
$snoopy->cookies["SessionID"] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "RED";
$snoopy->gt ;rawheaders["Pragma"] = "キャッシュなし";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->user = "ジョー";
$snoopy->pass = "ブルー";
if($snoopy->fetchtext("http://www.jb51.net) "))
{
echo "

".htmlspecialchars($snoopy->results)."
n";
}
else
echo "ドキュメントの取得エラー: ".$snoopy->error."n";


以下はコードの一部です:
1. 指定された URL のコンテンツを取得します

コードをコピーします コードは次のとおりです:


$url = "http://www.jb51.net";
$snoopy = 新しいスヌーピー; ->fetch($url); //すべてのコンテンツを取得します
echo $snoopy->results; //結果を表示します
//次のオプション
$snoopy->fetchtext //テキストのコンテンツを取得します(HTML コードを削除)
$snoopy->fetchlinks //リンクを取得
$snoopy->fetchform //フォームを取得
?>
2 フォーム送信


コードをコピー

コードは次のとおりです: $formvars["username"] = "管理者";

$formvars["pwd"] = "管理者";

$action = "http://www. jb51.net";//フォーム送信アドレス
$snoopy->submit($action,$formvars);//$formvars は送信された配列です
echo $snoopy->results ; //フォーム送信後に返される結果を取得します
//以下はオプションです
$snoopy->submittext; //送信後に HTML なしのテキストのみを返します
$snoopy->submitlinks;/ /送信後にのみリンクを返します
?>


フォームが送信されたので、次は IP とブラウザを偽装しましょう
3 偽装



コードをコピーします

次のようにコード化します: $formvars["username"] = "管理者";

$formvars["pwd"] = "管理者";

$action = "http://www. jb51.net";
include "snoopy.php";
$snoopy = 新しいスヌーピー;
$snoopy->cookies["PHPSESSID"] = "fc106b1918bd522cc863f36890e6fff7"; //セッション ID を偽装する
$snoopy->agent = "(互換性; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)"; //偽装ブラウザ
$snoopy->referer = http://www.jb51.net / /ソースページのアドレスを偽装する http_referer
$snoopy->rawheaders["Pragma"] = "no-cache"; //キャッシュの http ヘッダー情報
$snoopy->rawheaders["X_FORWARDED_FOR"] = " 127.0.0.101"; //Disguise ip
$snoopy->submit($action,$formvars);
echo $snoopy->results;
?>gt;


セッション、ブラウザ、IP を偽装できることがわかりました。笑、たくさんのことができます。
たとえば、確認コードと IP アドレスを使用して投票すると、継続的に投票できます。
追記: ここでの IP の偽装は、実際には http ヘッダーの偽装なので、REMOTE_ADDR で取得した IP は偽装できません。

逆に、http ヘッダーで IP を取得する人 (プロキシを防ぐことができる種類) は偽装できません。 IPを作成するには自分で行うことができます。
コードを確認する方法の簡単な説明:
まず、通常のブラウザを使用してページを表示し、確認コードに対応するセッション ID を見つけます。
セッション ID と確認コードの値をメモします。
次はスヌーピーを使って真似してみましょう。
原則: 同じセッションIDであるため、取得される確認コードは最初に入力したものと同じです。
4 場合によっては、さらに多くのものを偽造する必要があるかもしれません。スヌーピーが完全に私たちのために考えてくれました。



コードをコピーします

コードは次のとおりです: $snoopy->proxy_host = "http://www.jb51.net";

$snoopy->proxy_port = "8080"; //プロキシを使用します

$snoopy->maxredirs = 2; //リダイレクトの数
$snoopy->expandlinks = true; //コレクション中に補完リンクが頻繁に使用されるかどうか
//たとえば、リンクは /images です。 / taoav.gif は完全なリンクに変更できますhttp://www.jb51.net/images/taoav.gif< /a>
$snoopy->maxframes = 5 //許可されるフレームの最大数
//フレームを取得すると、$snoopy->result は配列を返すことに注意してください
$snoopy-> ;error //エラーメッセージ
?>

を返します。



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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLの表の境界線 HTMLの表の境界線 Sep 04, 2024 pm 04:49 PM

HTML の表の境界線に関するガイド。ここでは、HTML でのテーブルの境界線の例を示しながら、テーブル境界線を定義する複数の方法について説明します。

HTML のネストされたテーブル HTML のネストされたテーブル Sep 04, 2024 pm 04:49 PM

これは、HTML でのネストされたテーブルのガイドです。ここでは、テーブル内にテーブルを作成する方法をそれぞれの例とともに説明します。

HTML 左マージン HTML 左マージン Sep 04, 2024 pm 04:48 PM

HTML マージン左のガイド。ここでは、HTML margin-left の概要とその例、およびそのコード実装について説明します。

HTML テーブルのレイアウト HTML テーブルのレイアウト Sep 04, 2024 pm 04:54 PM

HTML テーブル レイアウトのガイド。ここでは、HTML テーブル レイアウトの値と例および出力について詳しく説明します。

HTML 順序付きリスト HTML 順序付きリスト Sep 04, 2024 pm 04:43 PM

HTML 順序付きリストのガイド。ここでは、HTML 順序付きリストと型の導入とその例についても説明します。

HTML入力プレースホルダー HTML入力プレースホルダー Sep 04, 2024 pm 04:54 PM

HTML 入力プレースホルダーのガイド。ここでは、コードと出力とともに HTML 入力プレースホルダーの例について説明します。

HTML 内のテキストの移動 HTML 内のテキストの移動 Sep 04, 2024 pm 04:45 PM

HTML でのテキストの移動に関するガイド。ここでは、概要、マーキー タグが構文でどのように機能するか、および実装例について説明します。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles