什么是小偷程序?顾名思义,小偷就是偷东西的,而程序就是计算机用的。合起来也很好理解:偷别人资料的程序。多半指网站的数据。
偷数据的,几乎什么语言都可以。没有什么语言是肯定不能的。不过,某些语言显得比较容易,某些就显得比较繁琐。PERL就是一种用来偷数据的方便语言,得益于其简洁的语法。
偷了数据,其实里面多半是HTML语句,包含了各种数据。我们也知道:HTML没XML那么好分析。针对某个页面的分析,程序还可以作出来。只是字符串处理相关的各种函数应用。但若被偷的东西结构变了,就要改变我们的程序,以适应新的结构。这个是要注意的。
下面我们对各种语言的小偷程序进行说明:
一.获得网站数据的各种语言代码
1.Perl
#!/usr/bin/perl
# 通过IE浏览器中的[查看]->[源文件]可看HTML文件内容。
# perl中可以不通过浏览器直接取得HTML文件内容,用的
# 就是perl模块libWWW
use strict;
use LWP::UserAgent;
use threads::shared;
my $URL = \"http://osdev.beguest.com\";
my $ua = new LWP::UserAgent;
$ua->agent(\'Mozilla/3.0\');
my ($address,$params) = split(/\\?/,$URL);
my $req = new HTTP::Request (\'GET\',$address);
$req->content_type(\'applicationn/x-www-form-urlencoded\');
$req->content();
my $res = $ua->request($req);
my $content = $res->as_string();
# 此时$content里面是网页内容
print $content;
$URL里就是要偷数据的地址。例子中的是本人的小站。偷自己的东西,没犯法吧?
当然,这个会把网页内容打印到控制台。所以很多数据或者需要保存的时候,应该用重定向符号输出到文件。如:
perl yourfile.pl >a.html
这样,输出的结果就保存在文件a.html中了。至于分析的语句,PERL可以使用方便而简洁的正则,限制于不同程序的不同分析,这里就不写分析语句了。
2.Active Server Pages - VBScript
ASP版本的小偷程序,也不见得有什么太大的难度。不过应用了XMLHTTP组件的功能而已,事实上,我也很惊讶ASP写这个程序的简短之处:
<%
URL = \"http://osdev.beguest.com/osdev3.htm\"
Set objXMLHTTP = CreateObject(\"Microsoft.XMLHTTP\")
objXMLHTTP.Open \"GET\",URL,False
objXMLHTTP.Send
Response.Write Server.HTMLEncode(objXMLHTTP.responseText)
Set objXMLHTTP = Nothing
%>
简单不?呵呵....
3.Active Server Pages - JScript
从原理来说,这个和VBScript差不多。从语句来说,这个跟VBScript也差不多-毕竟,它们都用同一个组件:
4.Java
Java用来干这个,实在有点大才小用的感觉:
import java.io.*;
import java.net.*;
public class getURLContent
{
public static void main(String args[]) throws MalformedURLException,IOException
{
URL url = new URL(\"http://osdev.beguest.com/osdev3.htm\");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
while(reader.ready()){
System.out.println(reader.readLine());
}
}
}
Module:Archive/sandbox
17 分钟前
没有评论:
发表评论