لقد قمت بتطوير العديد من برامج التحصيل ودرست الكثير من أكواد برامج التحصيل، لذلك لدي القليل من الفهم لمبادئ برامج التحصيل. لنتحدث عن مبدأ الجمع أولاً:
الخطوات الرئيسية لإجراءات التحصيل هي كما يلي:
1. الحصول على محتوى الصفحات المجمعة
2. استخراج كافة البيانات المستخدمة من رمز الاقتناء
1. الحصول على محتوى الصفحات المجمعة
طرق ASP شائعة الاستخدام والتي أعرفها حاليًا للحصول على محتوى الصفحات المجمعة هي:
1. استخدم مكون serverXMLHTTP للحصول على البيانات
انسخ رمز الكود كما يلي:
وظيفة GetBody(weburl)
"إنشاء كائن."
خافت ObjXMLHTTP
تعيين ObjXMLHTTP=Server.CreateObject(MSXML2.serverXMLHTTP)
"طلب الملف، في شكل غير متزامن
ObjXMLHTTP.Open GET,weburl,False
ObjXMLHTTP.send
بينما ObjXMLHTTP.readyState <> 4
ObjXMLHTTP.waitForResponse 1000
ويند
"احصل على النتيجة."
GetBody=ObjXMLHTTP.responseBody
"حرر الكائن."
تعيين ObjXMLHTTP=لا شيء
وظيفة النهاية
طريقة الاتصال:
GetBody (عنوان URL للملف)
2. أو مكون XMLHTTP للحصول على البيانات
انسخ رمز الكود كما يلي:
وظيفة GetBody(weburl)
"إنشاء كائن."
تعيين الاسترداد = CreateObject(Microsoft.XMLHTTP)
مع الاسترجاع
.فتح الحصول على، weburl، خطأ،،،
.يرسل
GetBody = .ResponseBody
نهاية مع
"حرر الكائن."
تعيين الاسترجاع = لا شيء
وظيفة النهاية
طريقة الاتصال:
GetBody (عنوان URL للملف)
لا يزال محتوى البيانات الذي تم الحصول عليه بهذه الطريقة بحاجة إلى التشفير والتحويل قبل استخدامه.
انسخ رمز الكود كما يلي:
الدالة BytesToBstr(body,Cset)
objstream خافت
تعيين objstream = Server.CreateObject(adodb.stream)
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.اكتب النص
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
تعيين objstream = لا شيء
وظيفة النهاية
طريقة الاتصال: يتم استخدام تشفير BytesToBstr (البيانات المراد تحويلها وترميزها) بشكل شائع مثل GB2312 وUTF-8
2. استخراج كافة البيانات المستخدمة من رمز الاقتناء
الطرق المتوفرة لدي حاليا هي:
1. استخدم وظيفة MID المدمجة في ASP لاعتراض البيانات المطلوبة
انسخ رمز الكود كما يلي:
نص الوظيفة (wstr، ابدأ، انتهى)
بداية = نيوسترينغ (وستر، بداية)
"قم بتعيين علامة البداية الفريدة للبيانات التي تحتاج إلى معالجة."
أكثر = نيوسترينغ (وستر، أكثر)
'الموافقة للبدء هي علامة النهاية الوحيدة للبيانات التي تحتاج إلى معالجة.
الجسم = منتصف (wstr، بداية، الإفراط في البداية)
'قم بتعيين نطاق الصفحات المعروضة
وظيفة النهاية
طريقة الاتصال: النص (محتوى الصفحة المجمعة، علامة البداية، علامة النهاية)
2. استخدام التعبيرات العادية للحصول على البيانات المطلوبة
انسخ رمز الكود كما يلي:
نص الوظيفة (wstr، ابدأ، انتهى)
Set xiaoqi = كائن تكوين مجموعة Regexp الجديد
xiaoqi.IgnoreCase = True'تجاهل حالة الأحرف
xiaoqi.Global = True' مضبوط على البحث عن النص الكامل
xiaoqi.Pattern = &start&.+?&over&'التعبير العادي
تعيين التطابقات =xiaoqi.Execute(wstr)'ابدأ في تنفيذ التكوين
تعيين xiaoqi=لا شيء
الجسم=
لكل مباراة في المباريات
body=body&Match.Value 'مطابقة الحلقة
التالي
وظيفة النهاية
طريقة الاتصال: النص (محتوى الصفحة المجمعة، علامة البداية، علامة النهاية)
أفكار تفصيلية لإجراءات التحصيل:
1. احصل على عنوان كل صفحة من صفحة القائمة المرقّمة الخاصة بالموقع
في الوقت الحاضر، تحتوي معظم مواقع الويب الديناميكية على قواعد لعناوين الترحيل، مثل:
صفحة ديناميكية
الصفحة الأولى: Index.asp?page=1
الصفحة الثانية: Index.asp?page=2
الصفحة الثالثة: Index.asp?page=3
.....
صفحة ثابتة
الصفحة الأولى: page_1.htm
الصفحة الثانية: page_2.htm
الصفحة الثالثة: page_3.htm
.....
للحصول على عنوان كل صفحة من صفحة قائمة الترحيل الخاصة بموقع الويب، ما عليك سوى استخدام المتغيرات لاستبدال الأحرف المتغيرة لكل عنوان صفحة، مثل: page_<%=&page&%>.htm
2. الحصول على محتوى صفحة القائمة المرقّمة للموقع المجمع
3. قم باستخراج عنوان اتصال URL لصفحة المحتوى المجمعة من رمز قائمة الترحيل
تحتوي معظم روابط صفحات المحتوى في الصفحات المقسمة إلى صفحات أيضًا على قواعد ثابتة، مثل:
<a href=url1>الاتصال 1</a> <br>
<a href=url2>الاتصال 2</a> <br>
<a href=url3>الاتصال 3</a> <br>
استخدم الكود التالي للحصول على مجموعة من اتصالات URL
انسخ رمز الكود كما يلي:
اضبط xiaoqi = New Regexp
xiaoqi.IgnoreCase = صحيح
xiaoqi.Global = صحيح
xiaoqi.Pattern = .+؟
تعيين التطابقات =xiaoqi.Execute(محتوى قائمة الصفحات)
تعيين xiaoqi=لا شيء
رابط =
لكل مباراة في المباريات
url=url&Match.Value
التالي
4. الحصول على محتوى صفحة المحتوى المجمع، واعتراض البيانات المراد الحصول عليها من صفحة المحتوى المجمع حسب علامة الاستخراج.
نظرًا لأنها صفحة تم إنشاؤها ديناميكيًا، فإن معظم صفحات المحتوى تحتوي على نفس علامات HTML، ويمكننا استخراج الأجزاء المطلوبة من المحتوى بناءً على هذه العلامات العادية.
يحب:
تحتوي كل صفحة على عنوان صفحة ويب <title>عنوان صفحة الويب</title>. يمكنك استخدام وظيفة اعتراض MID التي كتبتها أعلاه للحصول على القيمة بين <title></title>، أو يمكنك استخدام التعبيرات العادية للحصول عليها.
مثال: body(<title>عنوان صفحة الويب</title>,<title>,</title>)