هناك العديد من برامج التجميع عبر الإنترنت الآن ، ولكن في بعض الأحيان عندما تجد موقع ويب جيد وتريد إنشاء أداة تجميع لنفسك لجمع بعض المعلومات ، تحتاج إلى كتابة البرنامج بنفسك. في الواقع ، ليس من الصعب كتابة برامج التجميع هذه. يقومون بتحليل بنية الويب لموقع المصدر.
قم أولاً بتنزيل ملف فئة XMLHTTP:
<٪
فئة XHTTP
CSET الخاص ، Surl ، serror
sub sub class_initialize ()
'CSET = "UTF-8"
CSET = "GB2312"
serror = ""
نهاية الفرعية
sub sub class_terminate ()
نهاية الفرعية
الممتلكات العامة دع URL (theurl)
surl = theurl
نهاية الملكية
الممتلكات العامة الحصول على BasePath ()
BASEPATH = MID (SURL ، 1 ، Instrrev (SURL ، "/")-1)
نهاية الملكية
الممتلكات العامة الحصول على اسم الملف ()
اسم الملف = Mid (surl ، instrev (surl ، "/")+1)
نهاية الملكية
الممتلكات العامة الحصول على HTML ()
html = bytestobstr (getBody (surl))
نهاية الملكية
الممتلكات العامة الحصول على xhttperror ()
xhttperror = serror
نهاية الملكية
وظيفة خاصة bytestobstr (الجسم)
عند استئناف الخطأ التالي
'CSET: GB2312 UTF-8
قاتمة objstream
تعيين OBJStream = server.createBject ("Adodb.stream")
مع objstream
.type = 1 '
. mode = 3 '
.يفتح
. كتابة الجسم
.
.type = 2 '
.charset = cset '
bytestobstr = .readtext '
.يغلق
تنتهي
اضبط OBJStream = لا شيء
وظيفة نهاية
وظيفة خاصة getBody (SURL)
عند استئناف الخطأ التالي
DIM XMLHTTP
"اضبط xmlhttp = server.createBject (" msxml2.xmlhttp.4.0 ")
"اضبط xmlhttp = server.createBject (" Microsoft.xmlhttp ")
SET XMLHTTP = Server.CreateBject ("MSXML2.ServerXMLHTP")
XMLHTTP.Settimeouts 10000،10000،10000،30000
xmlhttp.open "get" ، surl ، false
XMLHTTP.SEND
إذا كان xmlhttp.readyState = 4 ثم
'إذا كان xmlhttp.status = 200 ثم
getBody = xmlHttp.ResponseBody
'end if
آخر
getBody = ""
إنهاء إذا
إذا err.number <> 0 ثم
serror = err.number
err.clear
آخر
serror = ""
إنهاء إذا
تعيين xmlhttp = لا شيء
وظيفة نهاية
الوظيفة العامة SaveImage (tofile ، isoverwrite)
عند استئناف الخطأ التالي
قاتمة Objstream ، objfso ، imgs
إذا لم يكن isoverwrite ثم
SET OBJFSO = server.createObject ("scripting.filesystemObject")
إذا كان objfso.filexists (server.mappath (tofile)) ثم
وظيفة الخروج
إنهاء إذا
تعيين OBJFSO = لا شيء
إنهاء إذا
IMGS = getBody (surl)
تعيين OBJStream = server.createBject ("Adodb.stream")
مع objstream
.type = 1
.يفتح
. كتابة IMGS
.savetofile server.mappath (tofile) ، 2
.يغلق()
تنتهي
تعيين objstream = لا شيء
وظيفة نهاية
الطبقة النهائية
٪>
مع هذا النوع من الملفات ، سيكون أكثر ملاءمة للقيام بالأشياء.
ثم يمكنك تحليل بنية صفحة الويب لموقع المجموعة وكتابة برنامج التجميع.
هنا مثال:
<!-#تضمين ملف = "conn.asp"->
<!-#include file = "inc/xhttp_class.asp"->
<!-#include file = "inc/function.asp"->
<٪
server.scriptTimeout = 1000
٪>
<html>
<head>
<meta http-equiv = "content-type" content = "text /html ؛ charset = gb2312" />
<title> BT Collector </title>