ホームページ >バックエンド開発 >PHPチュートリアル >PHP コレクション クラス Snoopy.class.php の紹介と download_PHP チュートリアル

PHP コレクション クラス Snoopy.class.php の紹介と download_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:11:151120ブラウズ

PHP コレクション クラス Snoopy.class.php の紹介とダウンロード

Snoopy は、Web コンテンツの取得とフォームの送信というタスクを完了するブラウザーをシミュレートするために使用できる非常に強力な PHP クラスです。以下に、Snoopy.class.php の機能と一般的な使用法を詳しく紹介します。

公式サイト:http://snoopy.sourceforge.net/ (海外サイトが開けない場合はTianxingブラウザをご利用ください)

ダウンロードアドレス: http://sourceforge.net/projects/snoopy/

当サイトのダウンロードアドレス:PHPコレクションライブラリ Snoopy.class.php download

スヌーピーの特徴をいくつかご紹介します:

1. Web ページのコンテンツを取得します
2. Web ページのテキストコンテンツを取得します (HTML タグを削除します) fetchtext
3. Web ページのリンクを取得し、fetchlinks fetchform を作成します
4. プロキシホストをサポート
5. 基本的なユーザー名/パスワード検証をサポートします
6. user_agent、リファラー(ソース)、Cookie、ヘッダーコンテンツ(ヘッダーファイル)の設定​​をサポート
7. ブラウザーのリダイレクトをサポートし、リダイレクトの深さを制御できます
8. Web ページ内のリンクを高品質の URL に展開できます (デフォルト)
9. データを送信して戻り値を取得します
10. トラッキング HTML フレームワークのサポート (v0.92 で追加)
11. リダイレクト時の Cookie の受け渡しをサポートします

備考: Snoopy.class.php を使用するには PHP 4 以降が必要です。PHP クラスなので、サポートを拡張する必要はありません。サーバーがcurlをサポートしていない場合に最適です。

以下は、一般的に使用されるいくつかのクラスメソッドの紹介です:

フェッチ($URI)

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

フェッチテキスト($URI)

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

フェッチフォーム($URI)

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

フェッチリンク($URI)

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

送信($URI,$formvars)

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

テキストを送信($URI,$formvars)

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

リンクを送信($URI)

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

クラス属性: (デフォルト値は括弧内にあります)

$host 接続されているホスト
$port 接続するポート
$proxy_host 使用するプロキシ ホスト (存在する場合)
$proxy_port 使用するプロキシ ホスト ポート (存在する場合)
$agent ユーザーエージェント変装 (スヌーピー v0.1)
$referer ルーティング情報 (利用可能な場合)
$cookies クッキー (ある場合)
$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 に設定します

以下は一般的な使用例です:

(1) php プログラマーのメモ Web サイトのトップページのテキストをキャプチャします

リーリー

(2) php プログラマーのメモ Web サイトのホームページのリンクをすべて取得します

リーリー

(3) Renren にログインするために送信する必要があるフィールドとターゲットアドレスを取得します

リーリー

(4) Renrenへのログインをシミュレートする

<?php
set_time_limit(0);
require "Snoopy.class.php";
$snoopy=new Snoopy();
$snoopy->referer='http://www.renren.com/';
$snoopy->agent="Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0";
$submit_vars['email'] ='登陆账号';
$submit_vars['password'] ='登陆密码';
$url='http://www.renren.com/PLogin.do';//登陆数据提交的URL地址
$snoopy->submit($url,$submit_vars);
$snoopy->fetch("http://www.renren.com/");//希望获取的页面数据
echo $snoopy->results;//www.phpernote.com

您可能感兴趣的文章

  • php利用curl实现多线程的类,php curl多线程下载图片
  • php snoopy采集类介绍
  • PHP 利用 Curl Functions 实现多线程抓取网页和下载文件
  • php实现将文件批量压缩打包下载
  • 强大的PHP 图片处理类(水印、透明度、缩放、锐化、旋转、翻转、剪切、反色)
  • 用PHP函数memory_get_usage获取当前PHP内存消耗量以实现程序的性能优化
  • php限制文件下载速度的功能
  • 如何去除codeIgniter开发的网站url里面的index.php字符串

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/930520.htmlTechArticlePHP采集类Snoopy.class.php介绍以及下载 Snoopy 是一个非常强大的PHP类,可以利用该类模拟浏览器来完成获取网页内容和发送表单的任务。下面是...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。