




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Snoopy是一個(gè)php類(lèi),用來(lái)模擬瀏覽器的功能,可以獲取網(wǎng)頁(yè)內(nèi)容,發(fā)送表 單。Snoopy正確運(yùn)行需要你的服務(wù)器的 PHP版本在4以上,并且支持PCREPerl Compatible Regular Expressions),基本的 LAMP!艮務(wù)都支持。一、Snoopy的一些特點(diǎn):1. 抓取網(wǎng)頁(yè)的內(nèi)容 fetch2. 抓取網(wǎng)頁(yè)的文本內(nèi)容(去除HTML標(biāo)簽)fetchtext3. 抓取網(wǎng)頁(yè)的鏈接,表單 fetchlinks fetchform4. 支持代理主機(jī)5. 支持基本的用戶(hù)名 / 密碼驗(yàn)證6. 支持設(shè)置 user_agent, referer( 來(lái)路), cookies 和 heade
2、r content( 頭 文件)7. 支持瀏覽器重定向,并能控制重定向深度8. 能把網(wǎng)頁(yè)中的鏈接擴(kuò)展成高質(zhì)量的 url( 默認(rèn))9. 提交數(shù)據(jù)并且獲取返回值10. 支持跟蹤HTML!架11. 支持重定向的時(shí)候傳遞cookies,要求php4以上就可以了,由于本身是 php 一個(gè)類(lèi),無(wú)需擴(kuò)支持,服務(wù)器不支持 curl 時(shí)候的最好選擇。二、類(lèi)方法 :fetch($URI)這是為了抓取網(wǎng)頁(yè)的內(nèi)容而使用的方法。$URI參數(shù)是被抓取網(wǎng)頁(yè)的URL地 址。抓取的結(jié)果被存儲(chǔ)在 $this->results 中。如果你正在抓取的是一個(gè)框架, Sn oopy將會(huì)將每個(gè)框架追蹤后存入數(shù)組中,然后存入$this
3、->results 。fetchtext($URI)本方法類(lèi)似于fetch(),唯一不同的就是本方法會(huì)去除 HTML標(biāo)簽和其他的 無(wú)關(guān)數(shù)據(jù),只返回網(wǎng)頁(yè)中的文字內(nèi)容。fetchform($URI)本方法類(lèi)似于fetch(),唯一不同的就是本方法會(huì)去除 HTM標(biāo)簽和其他的 無(wú)關(guān)數(shù)據(jù),只返回網(wǎng)頁(yè)中表單內(nèi)容 (form) 。fetchlinks($URI)本方法類(lèi)似于fetch(),唯一不同的就是本方法會(huì)去除 HTM標(biāo)簽和其他的 無(wú)關(guān)數(shù)據(jù),只返回網(wǎng)頁(yè)中鏈接 (link) 。 默認(rèn)情況下,相對(duì)鏈接將自動(dòng)補(bǔ)全,轉(zhuǎn)換成完整的URL。submit($URI,$formvars)本方法向$URL旨定的鏈接
4、地址發(fā)送確認(rèn)表單。$formvars是一個(gè)存儲(chǔ)表單參 數(shù)的數(shù)組。submittext($URI,$formvars)本方法類(lèi)似于submit(),唯一不同的就是本方法會(huì)去除 HTMI標(biāo)簽和其他的 無(wú)關(guān)數(shù)據(jù),只返回登陸后網(wǎng)頁(yè)中的文字內(nèi)容。submitlinks($URI)本方法類(lèi)似于submit(),唯一不同的就是本方法會(huì)去除 HTMI標(biāo)簽和其他的 無(wú)關(guān)數(shù)據(jù),只返回網(wǎng)頁(yè)中鏈接 (link) 。 默認(rèn)情況下,相對(duì)鏈接將自動(dòng)補(bǔ)全,轉(zhuǎn)換成完整的URL。三、類(lèi)屬性 : ( 缺省值在括號(hào)里 )$host 連接的主機(jī)$port 連接的端口 $proxy_host 使用的代理主機(jī),如果有的話(huà) $proxy_p
5、ort 使用的代理主機(jī)端口,如果有的話(huà) $agent 用戶(hù)代理偽裝 (Snoopy v0.1) $referer 來(lái)路信息,如果有的話(huà)$cookies cookies , 如果有的話(huà) $rawheaders 其他的頭信息 , 如果有的話(huà) $maxredirs 最大重定向次數(shù), 0=不允許 (5) $offsiteok whether or not to allow redirects off-site. (true) $expandlinks 是否將鏈接都補(bǔ)全為完整地址 (true)$user 認(rèn)證用戶(hù)名 , 如果有的話(huà)$pass 認(rèn)證用戶(hù)名 , 如果有的話(huà)$accept http 接受類(lèi)型
6、(image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)$error 哪里報(bào)錯(cuò) , 如果有的話(huà)$response_code 從服務(wù)器返回的響應(yīng)代碼$headers 從服務(wù)器返回的頭信息$maxlength 最長(zhǎng)返回?cái)?shù)據(jù)長(zhǎng)度$read_timeout 讀取操作超時(shí) (requires PHP 4 Beta 4+) 設(shè)置為 0 為沒(méi)有超時(shí)$timed_out 如果一次讀取操作超時(shí)了,本屬性返回 true (requires PHP4 Beta 4+)$maxframes 允許追蹤的框架最大數(shù)量$status 抓取的 http 的狀態(tài)$te
7、mp_dir 網(wǎng)頁(yè)服務(wù)器能夠?qū)懭氲呐R時(shí)文件目錄 (/tmp)$curl_path cURL binary 的目錄 , 如果沒(méi)有 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" = "*" /你的用戶(hù)名$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)訪(fǎng)問(wèn),此處獲取第一個(gè)模塊第一頁(yè)的數(shù)據(jù) $i=0;foreach ($url as $key=>$value)if ($i>=1)/ 測(cè)試限制break;else/ 訪(fǎng)問(wèn)該模塊, 提取帖子的連接地址, 正式訪(fǎng)問(wèn)里需要提取帖子分頁(yè)的數(shù)據(jù), 后根據(jù)分頁(yè)數(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&page=1&sid=iBLZfKif(!preg_match("/A(http:Wwww.phpchi VbbsVviewthread.php?t id=)0-9*&extra=page%3D1&page=0-9*&sid=a-zA-Z6/i",$va lue)unset($tie$i$key);/print_r($tie$i);/ 歸類(lèi)數(shù)組,將同一個(gè)帖子不同頁(yè)面的內(nèi)容放一個(gè)數(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ù)項(xiàng)開(kāi)始/$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),針對(duì)一個(gè)帖子if (is_array($value)foreach (
17、$value as $k1=>$v1)/ 頁(yè)內(nèi)循環(huán),針對(duì)一個(gè)帖子的 N 頁(yè)$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/ 直接取頁(yè)內(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 聚焦動(dòng)物健康2025年生物飼料添加劑研發(fā)成果鑒定報(bào)告
- 消費(fèi)金融公司用戶(hù)畫(huà)像精準(zhǔn)營(yíng)銷(xiāo)策略:2025年行業(yè)深度研究報(bào)告001
- 2025年醫(yī)藥電商平臺(tái)醫(yī)藥電商物流配送模式與合規(guī)監(jiān)管分析報(bào)告
- 2025年元宇宙社交平臺(tái)虛擬現(xiàn)實(shí)社交平臺(tái)品牌建設(shè)研究報(bào)告
- 2025年互聯(lián)網(wǎng)金融平臺(tái)合規(guī)整改與業(yè)務(wù)模式創(chuàng)新研究報(bào)告
- 2025年遠(yuǎn)程醫(yī)療服務(wù)模式與醫(yī)療資源配置優(yōu)化研究報(bào)告
- 2025年醫(yī)院電子病歷系統(tǒng)在醫(yī)療信息化中的應(yīng)用優(yōu)化與醫(yī)院管理報(bào)告
- 2025年基層醫(yī)療衛(wèi)生機(jī)構(gòu)信息化建設(shè)標(biāo)準(zhǔn)與規(guī)范報(bào)告001
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)模式質(zhì)量管理體系優(yōu)化報(bào)告
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)模式企業(yè)社會(huì)責(zé)任履行報(bào)告
- 中國(guó)絲綢文化課件
- 學(xué)科融合在初中音樂(lè)教學(xué)中的實(shí)踐研究
- 《分子間作用力理論》課件
- 2025春季學(xué)期國(guó)開(kāi)電大本科《管理英語(yǔ)3》一平臺(tái)在線(xiàn)形考綜合測(cè)試形考任務(wù)試題及答案
- 購(gòu)房違約免責(zé)協(xié)議書(shū)
- 清華大學(xué)語(yǔ)文試題及答案
- 陸游旅游攻略
- 2022愛(ài)德華EST3系統(tǒng)SDU軟件激活設(shè)備
- 2025年上半年山東濟(jì)寧市任城區(qū)事業(yè)單位招聘工作人員(衛(wèi)生類(lèi))161人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 股骨頭壞死中醫(yī)護(hù)理常規(guī)
- 血小板減少課件
評(píng)論
0/150
提交評(píng)論