数据抓取和分析~~
也就是小偷了.这种程序现在很受站长们的欢迎.建站的利器是也.因为不需要做多少的工作就能很快的建立好自己的站点,而且平时几乎不需要怎么更新,而只是提取别人站点的数据,说起来有点不是很讲道义,可是也是不失为一种手段.
不知道和搜索引擎有没有什么相近的地方?有机会的话,可以找点这方面的资料研究下.下面的这段代码是使用PHP进行这方面工作的一个例子.
<?php
$msg= file_get_contents("http://mobile.mooyi.com/phone/phone{495D00DD-ED21-441B-AB08-D4E2CD367E1F}.htm");
preg_match_all('/width="24%" valign="top">(.+?)<\/tr>/si',$msg,$tmp);
for($i=0;$i<count($tmp[0]);$i++){
list($name,$value) = explode(':',strip_tags($tmp[1][$i]));
echo "$name:$value<br/>";
}
?>
$msg= file_get_contents("http://mobile.mooyi.com/phone/phone{495D00DD-ED21-441B-AB08-D4E2CD367E1F}.htm");
preg_match_all('/width="24%" valign="top">(.+?)<\/tr>/si',$msg,$tmp);
for($i=0;$i<count($tmp[0]);$i++){
list($name,$value) = explode(':',strip_tags($tmp[1][$i]));
echo "$name:$value<br/>";
}
?>
但是如何对读取的数据进行动态的更新呢?还不是很清楚.见过一个牛人写的小偷类,可惜的是我还没有完全的搞明白.不过我相信有一天菜鸟也是会成为大虾的.呵呵,期待着...
另外我知道还可以使用JS+XMLHTTP来做.还没有时间去试验.下面是在网上找到的一篇文章,将的就是这方面的,先贴这里,有工夫再好好看吧.
1(一)原理
2 小偷程序实际上是通过了XML中的XMLHTTP组件调用其它网站上的网页。比如新闻小偷程序,很多都是调用了sina的新闻网页,并且对其中的html进行了一些替换,同时对广告也进行了过滤。用小偷程序的优点有:无须维护网站,因为小偷程序中的数据来自其他网站,它将随着该网站的更新而更新;可以节省服务器资源,一般小偷程序就几个文件,所有网页内容都是来自其他网站。缺点有:不稳定,如果目标网站出错,程序也会出错,而且,如果目标网站进行升级维护,那么小偷程序也要进行相应修改;速度,因为是远程调用,速度和在本地服务器上读取数据比起来,肯定要慢一些。
3 (二)事例
4 下面就XMLHTTP在ASP中的应用做个简单说明
5 〈%
6 '常用函数
7 '1、输入url目标网页地址,返回值getHTTPPage是目标网页的html代码
8 function getHTTPPage(url)
9 dim Http
10 set Http=server.createobject("MSXML2.XMLHTTP")
11 Http.open "GET",url,false
12 Http.send()
13 if Http.readystate<>4 then
14 exit function
15 end if
16 getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
17 set http=nothing
18 if err.number<>0 then err.Clear
19 end function
20 '2、转换乱玛,直接用xmlhttp调用有中文字符的网页得到的将是乱玛,可以通过adodb.stream组件进行转换
21 Function BytesToBstr(body,Cset)
22 dim objstream
23 set objstream = Server.CreateObject("adodb.stream")
24 objstream.Type = 1
25 objstream.Mode =3
26 objstream.Open
27 objstream.Write body
28 objstream.Position = 0
29 objstream.Type = 2
30 objstream.Charset = Cset
31 BytesToBstr = objstream.ReadText
32 objstream.Close
33 set objstream = nothing
34 End Function
35 '下面试着调用http://www.3doing.com/earticle/的html内容
36 Dim Url,Html
37 Url="http://www.3doing.com/earticle/" Html = getHTTPPage(Url)
38 Response.write Html
39 %〉
40
41
2 小偷程序实际上是通过了XML中的XMLHTTP组件调用其它网站上的网页。比如新闻小偷程序,很多都是调用了sina的新闻网页,并且对其中的html进行了一些替换,同时对广告也进行了过滤。用小偷程序的优点有:无须维护网站,因为小偷程序中的数据来自其他网站,它将随着该网站的更新而更新;可以节省服务器资源,一般小偷程序就几个文件,所有网页内容都是来自其他网站。缺点有:不稳定,如果目标网站出错,程序也会出错,而且,如果目标网站进行升级维护,那么小偷程序也要进行相应修改;速度,因为是远程调用,速度和在本地服务器上读取数据比起来,肯定要慢一些。
3 (二)事例
4 下面就XMLHTTP在ASP中的应用做个简单说明
5 〈%
6 '常用函数
7 '1、输入url目标网页地址,返回值getHTTPPage是目标网页的html代码
8 function getHTTPPage(url)
9 dim Http
10 set Http=server.createobject("MSXML2.XMLHTTP")
11 Http.open "GET",url,false
12 Http.send()
13 if Http.readystate<>4 then
14 exit function
15 end if
16 getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
17 set http=nothing
18 if err.number<>0 then err.Clear
19 end function
20 '2、转换乱玛,直接用xmlhttp调用有中文字符的网页得到的将是乱玛,可以通过adodb.stream组件进行转换
21 Function BytesToBstr(body,Cset)
22 dim objstream
23 set objstream = Server.CreateObject("adodb.stream")
24 objstream.Type = 1
25 objstream.Mode =3
26 objstream.Open
27 objstream.Write body
28 objstream.Position = 0
29 objstream.Type = 2
30 objstream.Charset = Cset
31 BytesToBstr = objstream.ReadText
32 objstream.Close
33 set objstream = nothing
34 End Function
35 '下面试着调用http://www.3doing.com/earticle/的html内容
36 Dim Url,Html
37 Url="http://www.3doing.com/earticle/" Html = getHTTPPage(Url)
38 Response.write Html
39 %〉
40
41