يقوم برنامج التجميع في الواقع باستدعاء صفحات الويب الموجودة على مواقع الويب الأخرى من خلال مكون XMLHTTP في XML. على سبيل المثال، العديد من برامج جمع الأخبار تستدعي صفحات الويب الإخبارية الخاصة بـ Sina، ويتم استبدال بعض HTML فيها، كما تتم تصفية الإعلانات. تتمثل مزايا استخدام برنامج التجميع في: عدم الحاجة إلى صيانة موقع الويب، لأن البيانات الموجودة في برنامج التجميع تأتي من مواقع ويب أخرى، وسيتم تحديثها مع تحديث موقع الويب؛ ويمكنه حفظ موارد الخادم بشكل عام يحتوي برنامج التجميع على عدد قليل من الملفات فقط، وكل محتوى الويب هو من مواقع ويب أخرى. العيوب هي:
غير مستقر، إذا حدث خطأ في موقع الويب المستهدف، فسوف يتعطل البرنامج أيضًا، وإذا تمت ترقية موقع الويب المستهدف وصيانته، فسيحتاج برنامج التجميع أيضًا إلى تعديل السرعة وفقًا لذلك، نظرًا لأنها مكالمة عن بعد، تكون السرعة أبطأ من قراءة البيانات على الخادم المحلي أبطأ بالتأكيد.
1. الحالات
فيما يلي شرح مختصر لتطبيق XMLHTTP في ASP.
انسخ رمز الكود كما يلي:
<%
'الوظائف شائعة الاستخدام
'1. أدخل عنوان URL لصفحة الويب المستهدفة، وتكون قيمة الإرجاع getHTTPage هي رمز html لصفحة الويب المستهدفة.
وظيفة getHTTPage(url)
dimHttp
تعيين Http=server.createobject(MSXML2.XMLHTTP)
Http.open الحصول على، URL، خطأ
المتشعب.إرسال ()
إذا Http.readystate<>4 ثم
وظيفة الخروج
نهاية إذا
getHTTPPage=bytesToBstr(Http.responseBody,GB2312)
تعيين http=لا شيء
إذا كان err.number<>0 ثم err.Clear
وظيفة النهاية
'2. تحويل Ranma. استخدم xmlhttp مباشرة للاتصال بصفحات الويب ذات الأحرف الصينية. ما ستحصل عليه هو Ranma. يمكنك تحويله من خلال مكون adodb.stream.
الدالة BytesToBstr(body)
objstream خافت
تعيين objstream = Server.CreateObject(adodb.stream)
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.اكتب النص
objstream.Position = 0
objstream.Type = 2
objstream.Charset = GB2312 'تحويل ترميز UTF-8 الافتراضي الأصلي إلى ترميز GB2312. وإلا، فإن استخدام مكون XMLHTTP مباشرة لاستدعاء صفحة ويب بأحرف صينية سيؤدي إلى تعليمات برمجية مشوهة.
BytesToBstr = objstream.ReadText
objstream.Close
تعيين objstream = لا شيء
وظيفة النهاية
"حاول استدعاء محتوى html الخاص بـ http://www.google أدناه
عنوان خافت، أتش تي أم أل
URL=http://www.google;
أتش تي أم أل = getHTTPage(Url)
الاستجابة.اكتب أتش تي أم أل
%>
2. العديد من الوظائف شائعة الاستخدام
الدالة InStr
الوصف إرجاع الموضع الذي يظهر فيه حرف معين (السلسلة 2) لأول مرة في سلسلة أخرى (السلسلة 1).
SyntaxInStr (سلسلة 1، سلسلة 2)
على سبيل المثال:
خافت SearchString، SearchChar
SearchString =http://www.google ' السلسلة المراد البحث عنها.
SearchChar = blue1000 'ابحث عن blue1000.
MyBK = Instr(SearchString, SearchChar) 'إرجاع 8
'إرجاع 0 إذا لم يتم العثور عليه، على سبيل المثال:
SearchChar = BK
MyBK = Instr(SearchString, SearchChar) 'إرجاع 0
وظيفة منتصف
الوصف: إرجاع عدد الأحرف المحدد من سلسلة.
SyntaxMid (سلسلة، بداية، أكثر)
على سبيل المثال:
خافت MyBK
MyBK = Mid (تصميم BK (www.google) الخاص بنا، 7، 12) "اعترض السلسلة المكونة من 12 حرفًا بعد الحرف السابع من تصميم BK (www.google) الخاص بنا" في هذا الوقت، تصبح قيمة MyBK www.google
وظيفة الاستبدال
خافت SearchString، SearchChar
SearchString = تصميم BK الخاص بنا عبارة عن سلسلة مواقع ويب لموارد بناء مواقع الويب التي سيتم البحث فيها.
SearchString =Replace(SearchString, BK design, Www.google)'في هذا الوقت، أصبحت قيمة SearchString لدينا Www.google هو موقع ويب لموارد إنشاء مواقع الويب
3. اعتراض كود HTML للمنطقة المحددة
على سبيل المثال، أريد فقط الحصول على جزء النص الموجود بين <td> و</td> في كود HTML التالي:
<أتش تي أم أل>
<title>BK (www.google) محرك بحث Google</title>
<الجسم>
<الجدول>
<tr><td></td></tr>
<tr><td id=Content>BK (www.google) محرك بحث Google هو موقع يحتوي على العديد من الموارد...</td></tr>
</الجدول>
</الجسم>
</html>
<%
…
خافت StrBK، ابدأ، انتهى، RsBK
StrBK=getHTTPPage (عنوان صفحة الويب)
start=Instr(StrBK,<td id=Content>) 'الوظيفة هنا هي الحصول على موضع بداية السلسلة. سيسأل شخص ما هنا: الكود الأصلي هو <td id=Content>، لماذا تتصل بـ <td id=Content> هنا؟ الإجابة: في asp (على وجه الدقة، يتم تمثيله بعلامتي اقتباس مزدوجتين في VBscript A double اقتباس، لأن علامات الاقتباس المزدوجة هي حرف حساس للبرنامج.) over=Instr(StrBK,…</td></tr>)'الوظيفة هنا هي الحصول على موضع نهاية السلسلة. 'سيسأل شخص ما مرة أخرى هنا:( : لماذا توجد ثلاث نقاط إضافية أمام كود HTML الذي يستدعيه البرنامج...؟ الإجابة: نصيحة: يوجد أيضًا </td></tr> في الأعلى إذا كنت تستخدم </td></ tr> لتحديد الموقع، فسيعتبر البرنامج عن طريق الخطأ </td></tr> في السطر أعلاه بمثابة نهاية السلسلة التي سيتم الحصول عليها RsBK=mid(StrBK,start, الإفراط في البداية). 'الوظيفة هنا هي استخراج السلسلة بين حرف البداية والحرف الزائد في StrBK، كما تحدثت عن الوظيفة المتوسطة في القسم السابق؛ وهي حساب المسافة بين موضع البداية وموضع النهاية ، أي عدد الأحرف.
Response.write(RsBK) 'أخيرًا قم بإخراج المحتوى الذي حصل عليه البرنامج
%>
لا تفرح كثيرا عند تشغيله ستجد أن هناك خطأ في كود html الخاص بالصفحة لماذا؟ لأن كود html الذي حصلت عليه هو: <td id=Content>BK (www.google) محرك بحث جوجل هو موقع يحتوي على العديد من الموارد...
هل رأيت ذلك؟ هناك كود HTML غير مكتمل! ما يجب القيام به؟ العبارة start=Instr(StrBK,<td id=Content>) تحصل على محتوى <td id=Content> في
رقم الموضع في StrBK، يمكننا الآن إضافة 17 بعد بيان البرنامج، ثم سيقوم البرنامج بتوجيه الموضع إلى الحرف بعد <td id=Content>.
حسنًا، سيتغير البرنامج إلى هذا:
<%
…
خافت StrBK، ابدأ، انتهى، RsBK
StrBK=getHTTPPage (عنوان صفحة الويب)
start=Instr(StrBK,<td id=Content>) + 17
over=Instr(StrBK,…</td></tr>) 'هنا يمكنك أيضًا طرح سبعة (-7) لإزالة 3 نقاط
RsBK = منتصف (StrBK، بدء، الإفراط في البداية)
الاستجابة.الكتابة (RsBK)
%>
لا بأس، يمكننا سرقة ما نريد وعرضه على صفحتنا الخاصة، هاها~
4. حذف أو تعديل الأحرف التي تم الحصول عليها
استبدل BK(www.google) في RsBK بـ BK:
RsBK=replace(RsBK,BK(www.google),BK)
أو قم بحذف (www.google) مباشرة:
RsBK=replace(RsBK,(www.google))
حسنًا، أصبح RsBK الآن: محرك بحث Google BK هو موقع يحتوي على العديد من الموارد... ولكن في الواقع، قد لا تكون وظيفة الاستبدال مناسبة لبعض المواقف، على سبيل المثال، نريد استبدال جميع الاتصالات في سلسلة معينة قد تتضمن الاتصالات العديد من الأنواع، ولا يمكن استبدالها إلا بنوع محدد منها، أليس كذلك؟