snoopy是一個php類,用來模仿web瀏覽器的功能,它能完成獲取網頁內容和發送表單的任務。
下面是它的一些特徵:
1、方便抓取網頁的內容11111111111
2、方便抓取網頁的文字(去掉HTML代碼)
3、方便抓取網頁的鏈接
4、支持代理主機
5、支持基本的用戶/密碼認證模式
6、支持自定義用戶agent,referer,cookies和header內容
7、支持瀏覽器轉向,並能控制轉向深度
8、能把網頁中的鏈接擴展成高質量的url(默認)
9、方便提交數據並且獲取返回值
10、支持跟蹤HTML框架(v0.92增加)
11、支持再轉向的時候傳遞cookies
下面是簡單的例子,比如說我們抓取我的blog的文字
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->fetchtext("http://www.phpobject.net/blog");
echo $snoopy->results;
^_^,不錯把,在比如抓取鏈接
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->fetchlinks("http://www.phpobject.net/blog");
print_r($snoopy->results);
使用snoopy提交數據實現登陸
模擬登陸可以用curl或者socket來實現,當curl需要服務器相應的啟用curl module,自己socket實現相對比較麻煩,使用snoopy就簡單了很多啦。
在這裡,我們使用喜悅國際村做為例子。(^_^,純屬研究)
首先,我們要獲取到登陸需要發送什麼字段,目標地址是什麼。這裡我們使用snoopy的fetchform來實現。
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->fetchform("http://www.phpx.com/happy/logging.php?action=login");
print $snoopy->results;
當然你也可以直接查看http://www.phpx.com/happy/…的源代碼來實現,不過這樣更加方便把。這裡,我們獲取到目標和提交的數據,下一步就可以實現模擬登陸了。
代碼如下:
<code>include "Snoopy.class.php";
$snoopy = new Snoopy;
$submit_url = "http://www.phpx.com/happy/logging.php?action=login";
$submit_vars["loginmode"] = "normal";
$submit_vars["styleid"] = "1";
$submit_vars["cookietime"] = "315360000";
$submit_vars["loginfield"] = "username";
$submit_vars["username"] = "********"; //你的用戶名
$submit_vars["password"] = "*******"; //你的密碼
$submit_vars["questionid"] = "0";
$submit_vars["answer"] = "";
$submit_vars["loginsubmit"] = "提 交";
$snoopy->submit($submit_url,$submit_vars);
print $snoopy->results;/<code>
閱讀更多 老公城獅 的文章