snoopy是一个php采集类,用来模拟浏览器获取网页内容和发送表单。
下面是一些snoopy特性:
容易抓取网页内容
容易抓取页面文本(去除html标签)
容易抓取网页内链接
支持代理抓取
支持基本的用户名、密码认证
支持设置user-agent,referer,cookies和header内容
支持浏览器转向,和控制转向深度
能把页面中的链接转化成高质量的链接
容易提交数据和获得返还值
能追踪html框架
支持重定向的时候传递cookies
snoopy类,方法:
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,如果有的话
$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/
希望本文对广大php开发者有所帮助,感谢阅读本文。更多php技术问题欢迎加群探讨:256271784,验证码:cxy,不写验证不予通过哟~