php+snoopy 数据采集

来源:互联网 发布:python socket send 编辑:程序博客网 时间:2024/04/20 22:33
PHP采集库
Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单。


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


获取指定网页的内容
<?php
$url = "http://www.codesky.net"; 
include("lib/Snoopy.class.php"); 
$snoopy = new Snoopy; 
$snoopy->fetch($url); //获取所有内容 
$content=$snoopy->results; //显示结果 
// print_r($content);


//获取到所有的文本
$snoopy->fetchtext('http://tech.163.com/internet');//获取链接 
$text=$snoopy->results;
print_r($text);


//获取所有的链接
$snoopy->fetchlinks; //获取链接 
$link=$snoopy->results;
print_r($link); 
?>


接下来我们来伪装ip,伪装浏览器 伪装session 
注意: 这里伪装ip ,其实是伪装http头, 所以一般的通过 REMOTE_ADDR 获取的ip是伪装不了, 
反而那些通过http头来获取ip的(可以防止代理的那种) 就可以自己来制造ip。 






<?php
include("lib/Snoopy.class.php"); 
$snoopy = new Snoopy; 
$formvars["username"] = "admin"; 
$formvars["pwd"] = "admin"; 
$action = "http://www.codesky.net"; 


$snoopy->cookies["PHPSESSID"] = 'fc106b1918bd522cc863f36890e6fff7'; //伪装sessionid 
$snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)"; //伪装浏览器 
$snoopy->referer = "http://s.jb51.net"; //伪装来源页地址 http_referer 
$snoopy->rawheaders["Pragma"] = "no-cache"; //cache 的http头信息 
$snoopy->rawheaders["X_FORWARDED_FOR"] = "127.0.0.101"; //伪装ip 
$snoopy->submit($action,$formvars); 
echo $snoopy->results; 
?> 

0 0