PHP採集利器snoopy應用詳解

2021-07-09 07:12:09 字數 2224 閱讀 2063

snoopy是乙個php類,用來模擬瀏覽器的功能,可以獲取網頁內容,傳送表單。snoopy正確執行需要你的伺服器的php版本在4以上, 並且支援pcre(perl compatible regular expressions),基本的lamp服務都支援。

一、snoopy的一些特點

1.抓取網頁的內容 fetch

2.抓取網頁的文字內容 (去除html標籤) fetchtext

3.抓取網頁的鏈結,表單 fetchlinks fetchform

4.支援**主機

5.支援基本的使用者名稱/密碼驗證

6.支援設定user_agent, referer(來路), cookies和header content(標頭檔案)

7.支援瀏覽器重定向,並能控制重定向深度

8.能把網頁中的鏈結擴充套件成高質量的url(預設)

9.提交資料並且獲取返回值

10.支援跟蹤html框架

11.支援重定向的時候傳遞cookies,要求php4以上就可以了,由於本身是php乙個類,無需擴支援,伺服器不支援curl時候的最好選擇

二、類方法

fetch($uri)

這是為了抓取網頁的內容而使用的方法。$uri引數是被抓取網頁的url位址。抓取的結果被儲存在 $this->results 中。 如果你正在抓取的是乙個框架,snoopy將會將每個框架追蹤後存入陣列中,然後存入 $this->results。

fetchtext($uri)

本方法類似於fetch(),唯一不同的就是本方法會去除html標籤和其他的無關資料,只返回網頁中的文字內容。

fetchform($uri)

本方法類似於fetch(),唯一不同的就是本方法會去除html標籤和其他的無關資料,只返回網頁中表單內容(form)。

fetchlinks($uri) 本方法類似於fetch(),唯一不同的就是本方法會去除html標籤和其他的無關資料,只返回網頁中鏈結(link)。 預設情況下,相對鏈結將自動補全,轉換成完整的url。

submit($uri,$formvars)

本方法向$url指定的鏈結位址傳送確認表單。$formvars是乙個儲存表單引數的陣列。

submittext($uri,$formvars)

本方法類似於submit(),唯一不同的就是本方法會去除html標籤和其他的無關資料,只返回登陸後網頁中的文字內容。

submitlinks($uri)

本方法類似於submit(),唯一不同的就是本方法會去除html標籤和其他的無關資料,只返回網頁中鏈結(link)。 預設情況下,相對鏈結將自動補全,轉換成完整的url。

三、類屬性(預設值在括號裡)

$host 連線的主機

$port 連線的埠

$proxy_host 使用的**主機,如果有的話

$proxy_port 使用的**主機埠,如果有的話

$agent 使用者**偽裝 (snoopy v0.1)

$referer 來路資訊,如果有的話

$cookies cookies, 如果有的話

$rawheaders 其他的頭資訊, 如果有的話

$maxredirs 最大重定向次數, 0=不允許 (5)

$offsiteok whether or not to allow redirects off-site. (true)

$user 認證使用者名稱, 如果有的話

$pass 認證使用者名稱, 如果有的話

$accept http 接受型別 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)

$error **報錯, 如果有的話

$response_code 從伺服器返回的響應**

$headers 從伺服器返回的頭資訊

$maxlength 最長返回資料長度

$read_timeout 讀取操作超時 (requires php 4 beta 4+) 設定為0為沒有超時

$timed_out 如果一次讀取操作超時了,本屬性返回 true (requires php 4 beta 4+)

$maxframes 允許追蹤的框架最大數量

$status 抓取的http的狀態

$temp_dir 網頁伺服器能夠寫入的臨時檔案目錄 (/tmp)

$curl_path curl binary 的目錄, 如果沒有curl binary就設定為 false

參考:

使用Snoopy進行模擬登陸 採集

snoopy是乙個使用php寫的採集類,使用了一下發現功能比較強大,幾乎可以模擬瀏覽器的所有行為,可以實現的功能有 比起使用curl,fsockopen等函式來說方便很多,下面總結一下這個類一些屬性與方法的作用。方法 fetch url 該方法用於抓取網頁內容,類似於file get content...

非同步網頁採集利器CasperJs

caperjs 定義如下 var fs require fs var casper require casper create loglevel debug 日誌等級 verbose true,記錄日誌到控制台 var url casper.cli.raw.get url 請求頁面 casper.s...

php 採集常用函式 PHP常用採集函式

獲取所有鏈結內容和位址function getallurl code 獲取所有的位址 function getimgsrc code else fnum if fnum fnum 0 return fnum 去除html標記 function text2html txt isu r n txt re...