⑴ 小偷程序的特點
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
%>
替換完需要修改的內容後,就可以把修改的內容顯示在頁面上了。至此程序結束
⑵ 小偷程序與採集的區別
「小偷抄」定義 指的是利襲用ASP 或PHP等強大功能,把遠程網站上的數據(圖片,網頁及其他文件)抓取到本地,經過各種處理後顯示到自己的頁面上或者存儲進資料庫的一類程序。「小偷」功能及用途 你可以通過這種小偷程序,完成過去一些似乎完全不可能實現的任務,比如說把某個站的頁面偷梁換柱後變成自己的頁面,或者把某個站的一些數據(文章,圖片)保存到本地資料庫中加以利用。「小偷」的優點 如果你的站被網路等搜索收入那麼在短期內你的網站訪問是會有很大提高且無須維護網站。減少運行成本,因為小偷程序中的數據來自其他網站,它將隨著該網站的更新而更新;可以節省大量的伺服器資源,一般小偷程序就幾個文件,所有網頁內容都是來自其他網站。「小偷」的缺點 不穩定,如果目標網站出錯,程序也會出錯,而且,如果目標網站進行升級維護,那麼小偷程序也要進行相應修改;速度,因為是遠程調用,速度和在本地伺服器上讀取數據比起來,肯定要慢一些。