指的是利用ASP 或PHP等强大来自功能,把远程网站上的数矿针显缺觉州证精他据(图片,网页及其他文件)抓取到每源陆顺本地,经过各种处理后显示到自己的页面上或者存储进数据库的一类程序。
你可以通过这种小偷程序,完成过去一些似乎完全不可能实现的任务,比如说把某个站的页面偷梁换柱后变成自己的页面,或者把某个站的一些数据(文章,图片)保存到本地数据库中加以利用。
如果你的小偷网站被百度等搜索引擎收录那么在短期内你的网素圆件搞站访问量是会有很大提高且无须维来自护网站。减少运行成本,因为小偷程序中的数报据来自其他网站,它将随着该网站的更新而更新,可以节省大量的服务器资源,一形写伟跟握真般小偷程序就几个文件,所有网页内容都是来自其他网站。
不稳定,如果目标网站来自出错,程序也会出错,而且,如果目标网站进行升级维护,那么小偷程序也要进行相应修改;速度,因为是远程调用,速度和在本地服务器上读取数据比起来,肯定要慢一些。
1、可以采集80配%以上的站点,只需简单的案入假在后台配置采集替换规则即可。
2、突破图片防盗链系统,可以将目标站的图片下载到服务器上面,提高访问效率,360百科增加百度图片的收胜态百波项身录。
3、支持静态生成,即使目标站服务器出现错全优些进丝除引你查仅误,本站依然不受影响(前提是开启静态生成和图片下载到迅应买跳法四本地服务器)。
4、授权升那吃运己节族粉民版可以启用全国分站功能,自动产生长尾关键字,适合全国服务行业和信息查询服务。
语言代码 1.Perl
#!/usr/bin/perl
# 通过IE浏览器中的[查看]->[源文件]可看HTML文件内容。
# perl中可以不通过浏览器直接取得冲每万协青动阳容极HTML文件内容,用的
# 就是perl模块libWWW
use strict;
use LWP::UserAgent;
use threads::shared;
my $URL = "http://*******";
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 长货销和早备府境yourf ile. pl >a.html
这样,输出的结果就保存称斤教条燃耐之士在文件a.html中了。至于分况站该鱼卫皮影百晚今气析的语句,PERL可以使用方便而简洁的正则,限制于不同程序的不同分析,这里握和济侵业话护华就不写分析语句了。
2.Active Server Pag伤附在胡花倍培甚节米es - VBScript
ASP版本的小偷程序,也不见得有什么太大的难度。不过应用了XMLHTTP组件的功能而已,事实上,我也很惊讶ASP写这个程序的简短之处:
<%
URL = "http://*******"
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://*******", false);
xmlhttp.Send();
alert(xmlhttp.responseText);
</script>
4.Java
Java用来干这个,实在有点大材小用的感觉:
import jav a .io.*;
import jav a. net.*;
public class getURLContent
{
public static void main(String args[]) throws MalformedURLException,IOException
{
URL url = new URL("url address");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
while(reader.ready()){
System.out.println(reader.readLine());
}
}
}
5.php
php:
$url='http://网址';
echo file_get_contents($url);
?>
6.Asp. Net
c#:
System .Net.WebClient webclient = new System .Net.WebClient();
webclient.DownloadString("http://*******");
vb.n et:
Dim webclient As New System .Net.WebClient()
webclient.DownloadString("http://*******")
实例
QQ网站上的天气程序
代码如下:
<%
On Error Resume Next
Server.ScriptTimeOut=9999999
Function getHTTPPage(Path)
t = GetBody(Path)
getHTTPPage=BytesToBstr(t,"GB2312")
End function
首先,进行小偷程序的一些初始化设置,以上代码的作用分别是忽略掉所有非致命性错误,把小偷程序的运行超时时间设置得很长(这样不会出现运行超时的错误),转换原来默认的UTF-8编码转换成GB2312编码,否则直接用XMLHTTP组件调用有中文字符的网页得到的将是乱码。
Function GetBody(url)
on error resume next
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "Get", url, False, "", ""
.Send
GetBody = .ResponseBody
End With
Set Retrieval = Nothing
End Function
然后调用XMLHTTP组件创建一个对象并进行初始化设置。
Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
Function Newstring(wstr,strng)
Newstring=Instr(lcase(wstr),lcase(strng))
if Newstring<=0 then Newstring=Len(wstr)
End Function
处理抓取回来的数据需要调用adodb.stream组件并进行初始化设置以下即为页面显示部分
<%
Dim wstr,str,url,start,over,city
'定义一些需要使用到的变量
city = Request.QueryString("id")
'程序传回的ID变量(即用户选择的城市)赋给id
url="http://appnews-qq-com/cgi-bin/news_qq_search?city="&city&""
这里设置需要抓取的页面地址,当然你也可以直接指定某个地址而不使用变量
wstr=getHTTPPage(url)
获取指定页面的全部数据
start=Newstring(wstr," <html>")
这里设置需要处理的数据的头部,这个变量应视不同情况而设置,具体内容可以通过查看需要抓取的页面的源代码来确定。因为在这个程序里我们需要抓取整个页面,所以设置为页面全部抓取。注意,设置的内容必须是页面内容唯一的,不可以重复。
over=Newstring(wstr," </HTML>")
和start相对应的就是需要处理的数据的尾部,同样的,设置的内容必须是页面中唯一的。
body=mid(wstr,start,over-start)
'设置显示页面的范围
下面就是动用乾坤挪移+++的时候了,通过replace可以用一些字符替换掉数据中指定的字符。
body = replace(body,"skin1","新浪天气预报 - 麦小偷网络")
body = replace(body,"http://appnews-qq-com/cgi-bin/news_qq_search?city","tianqi.asp?id")
本程序中已经完成了替换的工作,如果有其他需要的话可以继续进行类似的替换操作。
response.write body
%>
替换完需要修改的内容后,就可以把修改的内容显示在页面上了。至此程序结束
小偷程序最新版本V1.3,更新于2017-01-19
小偷程序基于Asp.Net2.0框架开发,拥有安全防挂马、稳定运行、高效执行等特点。
小偷程序强大的采集系统支持全网99%网站采集,让您几分钟就拥有千万数据的网站。
小偷程序安装方便,使用简单,自动采集+缓存,无需人工管理,成本低,节省人力物力。
小偷程序支持字符串替换、html标签替换、正则替换,文章伪原创,SEO优化的不二选择。
小偷程序强大的管理系统可以让用户任性设置,建设互联网独一无二的网站,让搜索引擎更喜爱。