Snoopy是一個php採集類,用來模擬瀏覽器獲取網頁內容和發送表單。php
下面是一些Snoopy特性: 數組
- 容易抓取網頁內容
- 容易抓取頁面文本(去除HTML標籤)
- 容易抓取網頁內連接
- 支持代理抓取
- 支持基本的用戶名、密碼認證
- 支持設置user-agent,referer,cookies和header內容
- 支持瀏覽器轉向,和控制轉向深度
- 能把頁面中的連接轉化成高質量的連接
- 容易提交數據和得到返還值
- 能追蹤HTML框架
- 支持重定向的時候傳遞Cookies
Snoopy類,方法:瀏覽器
fetch($URI)服務器
抓取網頁的內容而使用的方法。$URI參數是被抓取網頁的URL地址。抓取的結果被存儲在 $this->results 中。若是你正在抓取的是一個框架,Snoopy將會將每一個框架追蹤後存入數組中,而後存入 $this->results。cookie
fetchtext($URI)框架
本方法相似於fetch(),惟一不一樣的就是本方法會去除HTML標籤和其餘的無關數據,只返回網頁中的文字內容。curl
fetchform($URI)oop
本方法相似於fetch(),惟一不一樣的就是本方法會去除HTML標籤和其餘的無關數據,只返回網頁中表單內容(form)。post
fetchlinks($URI)fetch
本方法相似於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,若是有的話
- $rawheaders 其餘的頭信息, 若是有的話
- $maxredirs 最大重定向次數,0=不容許 (5)
- $offsiteok whether or not to allow redirects off-site. (true)
- $expandlinks 是否將連接都補全爲完整地址 (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官方網址:http://sourceforge.net/projects/snoopy/