小偷程序大全

类别:编程语言 点击:0 评论:0 推荐:

什么是小偷程序?顾名思义,小偷就是偷东西的,而程序就是计算机用的。合起来也很好理解:偷别人资料的程序。多半指网站的数据。

偷数据的,几乎什么语言都可以。没有什么语言是肯定不能的。不过,某些语言显得比较容易,某些就显得比较繁琐。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也差不多-毕竟,它们都用同一个组件:

<script language="JScript">
    var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.4.0");
    xmlhttp.Open("POST", "http://osdev.beguest.com/osdev3.htm", false);
    xmlhttp.Send();
    alert(xmlhttp.responseText);
</script>

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());
  }
 }
}

 想不到这个更简洁。呵呵...

[未完代续,还有PHP,JSP,中文数据问题等]

本文地址:http://com.8s8s.com/it/it25710.htm