小偷程式

小偷程式

指的是利用ASP 或PHP等強大功能,把遠程網站上的數據(圖片,網頁及其他檔案)抓取到本地,經過各種處理後顯示到自己的頁面上或者存儲進資料庫的一類程式。

功能

你可以通過這種小偷程式,完成過去一些似乎完全不可能實現的任務,比如說把某個站的頁面偷梁換柱後變成自己的頁面,或者把某個站的一些數據(文章,圖片)保存到本地資料庫中加以利用。

優點

如果你的小偷網站被百度等搜尋引擎收錄那么在短期內你的網站訪問量是會有很大提高且無須維護網站。減少運行成本,因為小偷程式中的數據來自其他網站,它將隨著該網站的更新而更新,可以節省大量的伺服器資源,一般小偷程式就幾個檔案,所有網頁內容都是來自其他網站。

缺點

不穩定,如果目標網站出錯,程式也會出錯,而且,如果目標網站進行升級維護,那么小偷程式也要進行相應修改;速度,因為是遠程調用,速度和在本地伺服器上讀取數據比起來,肯定要慢一些。

特點

1、可以採集80%以上的站點,只需簡單的在後台配置採集替換規則即可。

2、突破圖片防盜鏈系統,可以將目標站的圖片下載到伺服器上面,提高訪問效率,增加百度圖片的收錄。

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 Pages - 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最佳化的不二選擇。

小偷程式強大的管理系統可以讓用戶任性設定,建設網際網路獨一無二的網站,讓搜尋引擎更喜愛。

相關詞條

熱門詞條

聯絡我們