من فكرة الكثير من الناس أن يكون لديك محرك البحث الخاص بنا ، ولكن كيف يمكننا الحصول على محرك البحث الخاص بنا؟ الآن سيعلمك المحرر كيفية استخدام أساليب جمع البيانات الشائعة الحالية لتنفيذ محرك البحث الخاص بك. الآن دعنا نلقي نظرة على طرق بناء محرك البحث الخاص بك.
1. فهم بحث بايدو
تم إدراج Baidu Search ، أكبر محرك بحث صيني في العالم ، في بورصة ناسداك في الولايات المتحدة في 5 أغسطس 2005. إنه حاليًا محرك البحث الذي يضم أعلى معدل استخدام للمستخدم في الصين ، ويوفر العديد من عمليات البحث مثل صفحات الويب والأخبار والموسيقى والخرائط ، إلخ.
1. معلمات الاستعلام للبحث على شبكة الإنترنت BAIDU
المعلمات المطلوبة
☆ WD-Keyword للاستعلام (الكلمة الرئيسية)
☆ pn-عدد الصفحات التي توضح النتيجة (الوصل)
☆ نوع البحث (الفئة) ، cl = 3 هو بحث على شبكة الإنترنت
المعلمات الاختيارية
☆ RN-عدد نتائج البحث (سجل السجل) ، يتراوح نطاق القيمة بين 10-100 ، والإعداد الافتراضي هو RN = 10
☆-أي ترميز نص الإدخال (inputEncoding) ، الإعداد الافتراضي هو IE = GB2312 ، وهو مبسط صيني
☆ TN-موقع المصدر لتقديم طلب البحث
عدة TNS مفيدة
TN = Baidulocal يعني أن عمليات البحث على موقع Baidu ، والنتائج التي تم إرجاعها نظيفة للغاية ولا يوجد تداخل إعلاني. على سبيل المثال ، ابحث عن السعادة على Baidu لمعرفة ما إذا كانت النتائج منعشة.
TN = Baiducnnic يريد وضع بايدو في الإطار؟ فقط جرب هذه المعلمة ، يتم تخصيصها بواسطة Baidu لـ CNNIC
☆ Si- البحث في أسماء المجال المحدودة. على سبيل المثال ، إذا كنت ترغب في البحث على موقع Sina على الويب ، فيمكنك استخدام المعلمة si = sina.com.cn. لجعل هذه المعلمة فعالة ، يجب استخدامها بالتزامن مع المعلمة CT.
☆ CT-قيمة هذه المعلمة هي عمومًا سلسلة من الأرقام ، والتي يتم تقديرها على أنها رمز التحقق لطلب البحث.
استخدم معلمات Si و CT مجتمعة ، على سبيل المثال ، البحث عن المثل العليا في sina.com.cn ، المتاحة: http://www.baidu.com/baidu؟ie=utf-8&am...n&cl=3&word=ideal
☆ BS-الكلمة الرئيسية للبحث الأخير (Be FormorSearch) ، والتي تقدر أنها مرتبطة بتفتيشات ذات صلة.
2. بنية صفحة نتائج البحث في بايدو
وفقا لهيكل رمز المصدر ، من أعلى إلى أسفل هو:
مربع البحث
الترتيب الثابت للمناطق الساخنة على اليمين
نتائج البحث
منطقة ترقيم الصفحات
عمليات البحث ذات الصلة
مربع البحث السفلي
منطقة حقوق الطبع والنشر
نتائج البحث ومنطقة ترقيم الصفحات هي البيانات الصحيحة التي نحتاجها. وفقًا لنتائج الكود ، يمكنك العثور على معرف السلسلة الفريد الخاص به. فقط استخدم هذا المعرف لاعتراض المحتوى. لمزيد من التفاصيل ، انظر إلى الكود التالي.
2. الوظيفة الأساسية-مكون XMLHTTP باستخدام ASP
برنامج جمع البيانات ، المعروف باسم برنامج اللص ، هو الجزء الأساسي من مكون XMLHTTP هذا. من العوامل القديمة استخدام XMLHTTP لجمع البيانات ، وهناك أيضًا الكثير من المعلومات عبر الإنترنت. بشكل عام ، رمز التجميع هو
setThttp = server.createBject (msxml2.xmlhttp)
http.openget ، url ، false'open xmlhttp
http.send () 'إرسال طلب
ifhttp.readyState <> 4then
exitfunction
Endif
gethttppage = bytestobstr
setThttp = nothing'release xmlhttp
راجع الرمز الكامل أدناه للحصول على تطبيق مفصل
3. رمز كامل (اسم الملف: searchi_bd.asp)
<٪
OptionExplicit
Dimwd ، pn
WD = طلب (WD)
pn = request.querystring (pn)
ابدأ معالجة الخطأ
onerrorresumenext
iferr.number <> 0then
استجابة
عرض رسالة الخطأ إلى المستخدم
هناك خطأ في الرد. write <palign = 'center'> <fontsize = 3> ، يرجى فتح البحث مرة أخرى. </font> </p>
Endif
٪>
<html>
<head>
<title> بحث BAIDU-<٪ = WD ٪> </title>
</head>
<Tyletype = text/css>
<!-
الجسم ، td {font-family: arial}
td {font-size: 9pt ؛ line-height: 18px}
.cred {color:#ff0000}
//->
</style>
<BodyLeftMargin = 0TopMargin = 3MarginWidth = 0MarginHeight = 0>
<tablealign = centerwidth = 98 ٪ cellpacing = 0cellpadding = 0border = 0bgColor =#ffffff>
<tr>
<formName = f1method = postaction = searchi_bd.asp>
<tdwidth = 150height = 50>
شعارك
</td>
<tdalign = left>
<inputName = wdsize = 40maxLength = 100title = أدخل الكلمات الرئيسية ، ثم دعنا البحث ... value = <٪ = wd ٪ >>
<inputType = submitValue = Baidu Search>
</td> </part> </tr>
</table>
<٪
Dimstrurl ، StrTMP_BD ، Strinfo ، Strpage ، Strpagesum_BD ، StrqTime_BD
Dimbnoresult_BD ، Regex ، واجبن
سلسلة استعلام بايدو
strurl = http: //www.baidu.com/s؟ ie = gb2312 & wd = & wd & am ... & pn && cl = 3
ابدأ المجموعة
strtmp_bd = gethttppage (strurl)
ifinstr (strtmp_bd ، لم يتم العثور عليه واستعلامك) <> 0then
bnoresult_bd = 1
Endif
اعتراض محتوى قسم نتائج البحث
strinfo = strcut (strtmp_bd ، <divid = scriptDiv> </viv> ، <brclear = all> ، 2)
GARTN = </td> </tr> </lood> <br>
SetRegex = NewRegexp 'يخلق تعبيرًا منتظمًا.
regex.pattern = وضع GARN'SET.
regex.ignorecase = صحيح
regex.global = false
strinfo = regex.replace (strinfo ،)
"Seave محتوى منطقة الترحيل
strpage = strcut (strtmp_bd ، <brclear = all> ، <br> ، 2)
strpage = استبدال (strpage ، href = s؟ ، href = searchi_bd.asp؟)
'عدد النتائج والوقت
strpagesum_bd = strcut (strtmp_bd ، ابحث عن صفحة الويب ذات الصلة ، المقالة ، 2)
ifnotisnumeric (strpagesum_bd) ثم
strpagesum_bd = strcut (strtmp_bd ، ابحث عن صفحة الويب ذات الصلة ، المقالة ، 2)
Endif
strqtime_bd = strcut (strtmp_bd ، الوقت ، الثواني ، 2)
setStrtMP_BD = لا شيء
٪>
<!-T1-Start->
<tableCellPacing = 0cellPadding = 0border = 0width = 98 ٪ align = center>
<trvalign = centeralign = middleHeight = 18>
<tdwidth = 1bgColor =#999999>
<tdnowrapstyle = font-weight: Bold ؛ color: #ffffff ؛ proundy-color:#0033ccwidth = 64> Internet </td>
<TDAlign = rightbgColor =#eeeeeeeee> <bolr> ابحث عن صفحات الويب ذات الصلة التي تتطابق مع <b> <٪ = wd ٪> </b> <b> <s strpagesum_bd ٪> </b> ، وتناول <b> <٪ = strqtime_bd ٪> </b> </blor>
</r>
<tr> <tdbgColor =#999999Colspan = 3Height = 2> </td> </tr> </lood>
</td>
</r>
</table>
<٪
IFWD = ثم
Response.write <palign = 'center'> <fontsize = -1> مرحبًا ، الرجاء إدخال الكلمات الرئيسية في مربع البحث. </font> </p>
elseifbnoresult_bd = 1th
Response.write <Palign = 'Center'> <FontSize = -1> آسف ، لم يتم العثور على معلومات تلبي شروط الاستعلام الخاصة بك. يرجى إعادة تحديد الكلمة الرئيسية المناسبة للاستعلام. </font> </p>
آخر
٪>
<tablewidth = 98 ٪ align = centercellspace = 0cellpacing = 0cellpadding = 0border = 0>
<tr>
<tdstyle = خط الارتفاع: 160 ٪ bgColor =#ffffffwidth = 75 ٪ valign = top> <br>
<٪ = strinfo ٪>
</td>
<tdwidth = 25 ٪ valign = top> <br> هذه هي المساحة التي يمكنك لعبها!
</td>
</r>
</table>
<tablewidth = 98 ٪ محاذاة = centercellspace = 0cellpacing = 0cellpadding = 4border = 0>
<tr>
<tdalign = المركز>
<br> <fontsize = 3> <٪ = strpage ٪> </font>
</td>
</r>
</table>
<٪ endif
setStrinfo = لا شيء
٪>
<HRSIZE = 1WIDTH = 760COLOR =#0000FF>
<divalign = center> <FontSize = -1>
يرجى الانتقال إلى <spanclass = cred> (منتدى مشاركة المعرفة) </span> لعرض </font>
</div>
</body>
</html>
<٪
'جمع الوظائف
FunctionGethTtppage (URL)
onerrorresumenext
DIMHTTP
setThttp = server.createBject (msxml2.xmlhttp)
http.openget ، url ، خطأ
http.send ()
ifhttp.readyState <> 4then
exitfunction
Endif
gethttppage = bytestobstr (http.responsebody ، gb2312)
setThttp = لا شيء
iferr.number <> 0then
Response.write <Divalign = 'Center'> <b> الخادم يخطئ في الحصول على محتوى الملف </b> </viv>
err.clear
Endif
الوظيفية
"دفق البايت يتحول إلى سلسلة
FunctionByTestobstr (الجسم ، CSET)
Dimobjstream
setObjStream = server.createBject (adodb.stream)
objstream.type = 1
objstream.mode = 3
objstream.Open
objstream.writeBody
objstream.position = 0
objstream.type = 2
objstream.charset = cset
bytestobstr = objstream.readtext
objstream.close
setObjStream = لا شيء
الوظيفية
"اعتراض السلسلة ، 1. يتضمن قبل وبعد الأوتار ، 2. لا يشمل ما قبل وبعد السلاسل
FunctionStrcut (Strcontent ، StartStr ، Endstr ، Cuttype)
DIMS1 ، S2
onerrorresumenext
SelectCaseCuttype
Case1
S1 = instr (strcontent ، startStr)
S2 = Instr (S1 ، Strcontent ، Endstr)+Len (Endstr)
Case2
S1 = instr (strcontent ، startstr)+len (startstr)
S2 = Instr (S1 ، strcontent ، endstr)
endselect
iferrthen
strcute = <palign = 'center'> <fontsize = -1> حدث خطأ في اعتراض السلسلة. </font> </p>
err.clear
exitfunction
آخر
Strcut = Mid (Strcontent ، S1 ، S2-S1)
Endif
الوظيفية
٪>
انسخ الرمز أعلاه إلى المفكرة وحفظه كبحث عن searchi_bd.asp ، ويمكنك استخدامه. إذا كنت تريد تغيير اسم الملف ، فيرجى أيضًا تغيير جزء التعريف الأزرق من الكود التالي إلى اسم الملف الخاص بك
strpage = استبدال (strpage ، href = s؟ ، href = searchi_bd.asp؟)
بعض التفسيرات:
1. البحث في Baidu ليس لديه أي تدابير مضادة للاكتتاب. النقطة الرئيسية هي أن BAIDU ستغير الكود المصدري لصفحة نتائج الإرجاع بين الحين والآخر ، لذلك يجب عليك في كثير من الأحيان ملاحظة صفحة نتائج بحث BAIDU. إذا تغير الرمز ، يمكنك تغيير شعار السلسلة. من حيث مكافحة التجميع ، فإن Baidu أكثر سخاء من Google. في الوقت الحاضر ، لا توجد ظاهرة لحظر IP مؤقتًا لموقع المصدر بسبب الاستعلام المتكرر لـ Baidu. تحدث هذه الظاهرة غالبًا في استعلامات Google. كيفية حلها تتم مناقشتها في المقالة التالية.
2. جمع أكثر استغرابًا للموارد ، والبحث عن اللصوص هو نفسه البحث عن البرامج ، لذلك حاول إصدار المتغيرات أو الكائنات في أقرب وقت ممكن في البرنامج. إذا لم يكن لديك موارد مساحة كبيرة ، فمن المستحسن عدم القيام بهذه الأشياء.
3. قد لا يرغب بعض الأشخاص في الاحتفاظ بأي اتصالات وظيفية لـ Baidu في لص الذين يقومون به ، مثل لقطات Baidu ووظائف البحث في الموقع. لهذا السبب ، أقدم نسخة مبسطة دون أي اتصال بـ Baidu في حزمة التنزيل. يمكنك استخدامه حسب الحاجة. لن يتم سرد الرمز في هذه المقالة ، والتي تشبه في الواقع النسخة الكاملة.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع ، وآمل أن يدعم الجميع قناة التكنولوجيا الجديدة الخاطئة.