snoopy中文手冊_第1頁
snoopy中文手冊_第2頁
snoopy中文手冊_第3頁
snoopy中文手冊_第4頁
snoopy中文手冊_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Snoopy是一個php類,用來模擬瀏覽器的功能,可以獲取網(wǎng)頁內(nèi)容,發(fā)送表 單。Snoopy正確運行需要你的服務(wù)器的 PHP版本在4以上,并且支持PCREPerl Compatible Regular Expressions),基本的 LAMP!艮務(wù)都支持。一、Snoopy的一些特點:1. 抓取網(wǎng)頁的內(nèi)容 fetch2. 抓取網(wǎng)頁的文本內(nèi)容(去除HTML標(biāo)簽)fetchtext3. 抓取網(wǎng)頁的鏈接,表單 fetchlinks fetchform4. 支持代理主機(jī)5. 支持基本的用戶名 / 密碼驗證6. 支持設(shè)置 user_agent, referer( 來路), cookies 和 heade

2、r content( 頭 文件)7. 支持瀏覽器重定向,并能控制重定向深度8. 能把網(wǎng)頁中的鏈接擴(kuò)展成高質(zhì)量的 url( 默認(rèn))9. 提交數(shù)據(jù)并且獲取返回值10. 支持跟蹤HTML!架11. 支持重定向的時候傳遞cookies,要求php4以上就可以了,由于本身是 php 一個類,無需擴(kuò)支持,服務(wù)器不支持 curl 時候的最好選擇。二、類方法 :fetch($URI)這是為了抓取網(wǎng)頁的內(nèi)容而使用的方法。$URI參數(shù)是被抓取網(wǎng)頁的URL地 址。抓取的結(jié)果被存儲在 $this->results 中。如果你正在抓取的是一個框架, Sn oopy將會將每個框架追蹤后存入數(shù)組中,然后存入$this

3、->results 。fetchtext($URI)本方法類似于fetch(),唯一不同的就是本方法會去除 HTML標(biāo)簽和其他的 無關(guān)數(shù)據(jù),只返回網(wǎng)頁中的文字內(nèi)容。fetchform($URI)本方法類似于fetch(),唯一不同的就是本方法會去除 HTM標(biāo)簽和其他的 無關(guān)數(shù)據(jù),只返回網(wǎng)頁中表單內(nèi)容 (form) 。fetchlinks($URI)本方法類似于fetch(),唯一不同的就是本方法會去除 HTM標(biāo)簽和其他的 無關(guān)數(shù)據(jù),只返回網(wǎng)頁中鏈接 (link) 。 默認(rèn)情況下,相對鏈接將自動補全,轉(zhuǎn)換成完整的URL。submit($URI,$formvars)本方法向$URL旨定的鏈接

4、地址發(fā)送確認(rèn)表單。$formvars是一個存儲表單參 數(shù)的數(shù)組。submittext($URI,$formvars)本方法類似于submit(),唯一不同的就是本方法會去除 HTMI標(biāo)簽和其他的 無關(guān)數(shù)據(jù),只返回登陸后網(wǎng)頁中的文字內(nèi)容。submitlinks($URI)本方法類似于submit(),唯一不同的就是本方法會去除 HTMI標(biāo)簽和其他的 無關(guān)數(shù)據(jù),只返回網(wǎng)頁中鏈接 (link) 。 默認(rèn)情況下,相對鏈接將自動補全,轉(zhuǎn)換成完整的URL。三、類屬性 : ( 缺省值在括號里 )$host 連接的主機(jī)$port 連接的端口 $proxy_host 使用的代理主機(jī),如果有的話 $proxy_p

5、ort 使用的代理主機(jī)端口,如果有的話 $agent 用戶代理偽裝 (Snoopy v0.1) $referer 來路信息,如果有的話$cookies cookies , 如果有的話 $rawheaders 其他的頭信息 , 如果有的話 $maxredirs 最大重定向次數(shù), 0=不允許 (5) $offsiteok whether or not to allow redirects off-site. (true) $expandlinks 是否將鏈接都補全為完整地址 (true)$user 認(rèn)證用戶名 , 如果有的話$pass 認(rèn)證用戶名 , 如果有的話$accept http 接受類型

6、(image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)$error 哪里報錯 , 如果有的話$response_code 從服務(wù)器返回的響應(yīng)代碼$headers 從服務(wù)器返回的頭信息$maxlength 最長返回數(shù)據(jù)長度$read_timeout 讀取操作超時 (requires PHP 4 Beta 4+) 設(shè)置為 0 為沒有超時$timed_out 如果一次讀取操作超時了,本屬性返回 true (requires PHP4 Beta 4+)$maxframes 允許追蹤的框架最大數(shù)量$status 抓取的 http 的狀態(tài)$te

7、mp_dir 網(wǎng)頁服務(wù)器能夠?qū)懭氲呐R時文件目錄 (/tmp)$curl_path cURL binary 的目錄 , 如果沒有 cURL binary 就設(shè)置為 false四、以下是 demo include "Snoopy.class.php"$snoopy = new Snoopy;$snoopy->proxy_host = ""$snoopy->proxy_port = "8080"$snoopy->agent = "(compatible; MSIE4.01; MSN2.5; AOL4.0; Win

8、dows98)" $snoopy->referer = "$snoopy->cookies"SessionID" = 238472834723489l; $snoopy->cookies"favoriteColor" = "RED"$snoopy->rawheaders"Pragma" = "no-cache"$snoopy->maxredirs = 2;$snoopy->offsiteok = false;$snoopy->expa

9、ndlinks = false;$snoopy->user = "joe"$snoopy->pass = "bloe"if($snoopy->fetchtext("")echo " <PRE>".htmlspecialchars($snoopy->results)." </PRE>n" <BR> <BR>else <BR>echo "error fetching document: ".$sn

10、oopy->error."n"snoopy 采集 phpchina 示例<?php/ 采集 phpchina set_time_limit(0); require_once("Snoopy.class.php"); $snoopy=new Snoopy();/ 登陸論壇$submit_url = " $submit_vars"loginmode" = "normal"$submit_vars"styleid" = "1"$submit_vars"

11、;cookietime" = "315360000" $submit_vars"loginfield" = "username"$submit_vars"username" = "*" /你的用戶名$submit_vars"password" = "*" / 你的密碼 $submit_vars"questionid" = "0"$submit_vars"answer" = "&

12、quot; $submit_vars"loginsubmit" = "提 交"$snoopy->submit($submit_url,$submit_vars); if ($snoopy->results)/ 獲取連接地址 $snoopy->fetchlinks(" $url=array();$url=$snoopy->results;/print_r($url); foreach ($url as $key=>$value) 地址/ 匹配 即論壇板塊地址if?fid=)0-9*&sid=a-zA-Z6/i

13、",$value) unset($url$key);/print_r($url);/ 獲取到板塊數(shù)組 $url ,循環(huán)訪問,此處獲取第一個模塊第一頁的數(shù)據(jù) $i=0;foreach ($url as $key=>$value)if ($i>=1)/ 測試限制break;else/ 訪問該模塊, 提取帖子的連接地址, 正式訪問里需要提取帖子分頁的數(shù)據(jù), 后根據(jù)分頁數(shù)據(jù)提取帖子數(shù)據(jù)$snoopy=new Snoopy();$snoopy->fetchlinks($value);$tie=array();$tie$i=$snoopy->results;/print_

14、r($tie);/ 轉(zhuǎn)換數(shù)組foreach ($tie$i as $key=>$value)/ 匹配 D1&amp;page=1&sid=iBLZfKif(!preg_match("/A(http:Wwww.phpchi VbbsVviewthread.php?t id=)0-9*&amp;extra=page%3D1&amp;page=0-9*&sid=a-zA-Z6/i",$va lue)unset($tie$i$key);/print_r($tie$i);/ 歸類數(shù)組,將同一個帖子不同頁面的內(nèi)容放一個數(shù)組里$l

15、eft=''/ 連接左邊公用地址$j=0;$page=array();foreach ($tie$i as $key=>$value)$left=substr($value,0,52);$m=0;foreach ($tie$i as $pkey=>$pvalue)/ 重組數(shù)組if (substr($pvalue,0,52)=$left)$page$j$m=$pvalue;$m+;$j+;/ 去除重復(fù)項開始/$page=array_unique($page); 只能用于一維數(shù)組$paget0=$page0;$nums=count($page);for ($n=1;$n

16、 <$nums;$n+)$paget$n=array_diff($page$n,$page$n-1);/ 去除多維數(shù)組重復(fù)值結(jié)束/ 去除數(shù)組空值unset($page);$page=array();/ 重新定義 page 數(shù)組$page=array_filter($paget);/print_r($page);$u=0;$title=array();$content=array();$temp=''$tt=array();foreach ($page as $key=>$value)/ 外圍循環(huán),針對一個帖子if (is_array($value)foreach (

17、$value as $k1=>$v1)/ 頁內(nèi)循環(huán),針對一個帖子的 N 頁$snoopy=new Snoopy();$snoopy->fetch($v1);$temp=$snoopy->results;/ 讀取標(biāo)題if (!preg_match_all("/ <h2>(.*) </h2>/i",$temp,$tt)echo "no title"exit;else$title$u=$tt11; unset($tt);/ 讀取內(nèi)容if (!preg_match_all("/ <div id="

18、;postmessage_0-91,8" class="t_msgfont">(.*) </div>/i",$temp,$tt) print_r($tt);echo "no content1"exit;elseforeach ($tt1 as $c=>$c2)$content$u.=$c2;else/ 直接取頁內(nèi)容 $snoopy=new Snoopy(); $snoopy->fetch($value); $temp=$snoopy->results;/ 讀取標(biāo)題if (!preg_match_all("/ <h2>(.*) </h2>/i",$temp,$tt)echo "no title"exit;else $title$u=$tt11; unset($tt);/ 讀取

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論