เป็นความคิดของผู้คนมากมายที่จะมีเครื่องมือค้นหาของเราเอง แต่เราจะมีเครื่องมือค้นหาของเราเองได้อย่างไร ตอนนี้บรรณาธิการจะสอนวิธีใช้วิธีการรวบรวมข้อมูลยอดนิยมในปัจจุบันเพื่อใช้เครื่องมือค้นหาของคุณเอง ทีนี้ลองมาดูวิธีการสร้างเครื่องมือค้นหาของคุณเอง
1. เข้าใจการค้นหา Baidu
Baidu Search ซึ่งเป็นเครื่องมือค้นหาจีนที่ใหญ่ที่สุดในโลกได้รับการจดทะเบียนใน NASDAQ ในสหรัฐอเมริกาเมื่อวันที่ 5 สิงหาคม 2548 ปัจจุบันเป็นเครื่องมือค้นหาที่มีอัตราการใช้งานผู้ใช้สูงสุดในประเทศจีน
1. พารามิเตอร์แบบสอบถามสำหรับการค้นหาเว็บ Baidu
พารามิเตอร์ที่ต้องการ
☆ WD-คีย์คำสำหรับการสืบค้น (คำหลัก)
☆ pn-จำนวนหน้าแสดงผลลัพธ์ (pagenumber)
☆ cl-ประเภทการค้นหา (คลาส), cl = 3 คือการค้นหาเว็บ
พารามิเตอร์เสริม
☆ rn-จำนวนผลการค้นหา (recordNumber) ช่วงค่าอยู่ระหว่าง 10-100 การตั้งค่าเริ่มต้นคือ rn = 10
☆ IE-การเข้ารหัสการเข้ารหัสข้อความอินพุต (การเข้ารหัส) การตั้งค่าเริ่มต้นคือ IE = GB2312 ซึ่งเป็นภาษาจีนที่ง่ายขึ้น
☆ tn-เว็บไซต์ต้นทางสำหรับส่งคำขอค้นหา
TNS ที่มีประโยชน์หลายประการ
TN = baidulocal หมายความว่าการค้นหาบนไซต์ Baidu ผลลัพธ์ที่ส่งคืนนั้นสะอาดมากและไม่มีสัญญาณรบกวนโฆษณา ตัวอย่างเช่นค้นหาความสุขบน Baidu เพื่อดูว่าผลลัพธ์นั้นสดชื่นหรือไม่
tn = baiducnnic ต้องการที่จะใส่ baidu ในกรอบ? เพียงแค่ลองพารามิเตอร์นี้มันถูกปรับแต่งโดย Baidu สำหรับ CNNIC
☆ si-search ในชื่อโดเมนที่ จำกัด ตัวอย่างเช่นหากคุณต้องการค้นหาบนเว็บไซต์ของ 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-คำสำคัญของการค้นหาล่าสุด (beforesearch) ซึ่งคาดว่าจะเกี่ยวข้องกับการค้นหาที่เกี่ยวข้อง
2. โครงสร้างหน้าผลการค้นหา Baidu
ตามโครงสร้างซอร์สโค้ด, บนลงล่างคือ:
ช่องค้นหา
แก้ไขการจัดอันดับพื้นที่ร้อนทางด้านขวา
ผลการค้นหา
พื้นที่ปนเปื้อน
การค้นหาที่เกี่ยวข้อง
กล่องค้นหาด้านล่าง
พื้นที่ลิขสิทธิ์
ผลการค้นหาและพื้นที่การปนเปื้อนเป็นข้อมูลที่ถูกต้องที่เราต้องการ ตามผลลัพธ์ของรหัสคุณสามารถค้นหาตัวระบุสตริงที่ไม่ซ้ำกันได้ เพียงใช้ตัวระบุนี้เพื่อสกัดกั้นเนื้อหา สำหรับรายละเอียดดูรหัสต่อไปนี้
2. ฟังก์ชั่นหลัก-องค์ประกอบ xmlhttp โดยใช้ ASP
โปรแกรมการรวบรวมข้อมูลที่รู้จักกันทั่วไปว่าเป็นโปรแกรมขโมยเป็นส่วนสำคัญขององค์ประกอบ XMLHTTT นี้ มันค่อนข้างล้าสมัยเล็กน้อยที่จะใช้ XMLHTTP เพื่อรวบรวมข้อมูลและยังมีข้อมูลออนไลน์มากมาย โดยทั่วไปรหัสคอลเลกชันคือ
setthttp = server.createObject (msxml2.xmlhttp)
http.openget, url, false'open xmlhttp
http.send () 'ส่งคำขอ
ifhttp.readystate <> 4 จากนั้น
exitfunction
endif
gethttppage = bytestobstr (http.responsebody, gb2312) 'ส่งคืนผลลัพธ์ (โดยปกติคือสตรีมไบต์) และแปลงสตรีมไบต์เป็นสตริง
setTHTTP = ไม่มีอะไร release xmlhttp
ดูรหัสที่สมบูรณ์ด้านล่างสำหรับแอปพลิเคชันโดยละเอียด
3. รหัสสมบูรณ์ (ชื่อไฟล์: searchi_bd.asp)
-
ตัวเลือก Explicit
dimwd, pn
WD = คำขอ (WD)
pn = request.querystring (PN)
'เริ่มการจัดการข้อผิดพลาด
onerrorresumenext
iferr.number <> 0 แล้ว
Response.Clear
'แสดงข้อความแสดงข้อผิดพลาดถึงผู้ใช้
มีข้อผิดพลาดในการตอบสนองเขียน <palign = 'center'> <fontsize = 3> โปรดเปิดการค้นหา Baidu อีกครั้ง </font> </p>
endif
-
<html>
<head>
<title> การค้นหา Baidu-<%= wd%> </title>
</head>
<styleType = text/css>
-
Body, 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 = ซ้าย>
<inputName = WDSIZE = 40MaxLength = 100Title = ป้อนคำหลักแล้วปล่อยให้การค้นหา ... value = <%= wd%>>
<inputType = submentValue = การค้นหา baidu>
</td> </form> </tr>
</table>
-
Dimstrurl, strtmp_bd, strinfo, strpage, strpagesum_bd, strqtime_bd
dimbnoresult_bd, regex, Patrn
'สตริงการสืบค้น Baidu
strurl = http: //www.baidu.com/s? ie = gb2312 & wd = & wd & am ... & pn && cl = 3
'เริ่มคอลเลกชัน
strtmp_bd = gethttppage (strurl)
ifinstr (strtmp_bd ไม่พบและแบบสอบถามของคุณ) <> 0 แล้ว
bnoresult_bd = 1
endif
'สกัดกั้นเนื้อหาของส่วนผลการค้นหา
strinfo = strcut (strtmp_bd, <divid = scriptDiv> </div>, <brclear = ทั้งหมด>, 2)
patrn = </td> </tr> </table> <br>
setregex = newregexp 'สร้างนิพจน์ทั่วไป
regex.pattern = โหมด Patrn'set
regex.ignorecase = true
regex.global = false
strinfo = regex.replace (strinfo,)
'Seave เนื้อหาของพื้นที่เพจ
strpage = strcut (strtmp_bd, <brclear = ทั้งหมด>, <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; พื้นหลังสี:#0033ccwidth = 64> อินเทอร์เน็ต </td>
<tdalign = rightbgColor =#eeeeeeee> <nobr> ค้นหาหน้าเว็บที่เกี่ยวข้องที่ตรงกับ <b> <%= wd%> </b> <b> <%= strpagesum_bd%> </b> และใช้ <b> <%= strqtime_bd%> </b>
</tr>
<tr> <tdbgColor =#999999ColSpan = 3Height = 2> </td> </tr> </table>
</td>
</tr>
</table>
-
ifwd = ดังนั้น
response.write <palign = 'center'> <fontsize = -1> สวัสดีโปรดป้อนคำหลักในช่องค้นหา </font> </p>
elseifbnoresult_bd = 1 จากนั้น
Response.write <palign = 'center'> <fontsize = -1> ขออภัยไม่พบข้อมูลที่ตรงกับเงื่อนไขการสืบค้นของคุณ โปรดเลือกคำหลักที่เหมาะสมในการสืบค้น </font> </p>
อื่น
-
<TableWidth = 98%Align = CenterCellSpace = 0CellPacing = 0CellPadding = 0BORDER = 0>
<tr>
<tdstyle = line-height: 160%bgcolor =#ffffffwidth = 75%valign = top> <br>
<%= strinfo%>
</td>
<tdwidth = 25%valign = top> <br> นี่คือพื้นที่สำหรับคุณที่จะเล่น!
</td>
</tr>
</table>
<TableWidth = 98%Align = CenterCellSpace = 0CellPacing = 0CellPadding = 4Border = 0>
<tr>
<tdalign = center>
<br> <fontsize = 3> <%= strpage%> </font>
</td>
</tr>
</table>
<%endif
setStrinfo = ไม่มีอะไร
-
<hrsize = 1Width = 760Color =#0000ff>
<divalign = center> <fontsize = -1>
โปรดไปที่ <spanclass = cred> (ฟอรัมการแบ่งปันความรู้) </span> เพื่อดู </font>
</div>
</body>
</html>
-
'คอลเลกชันของฟังก์ชั่น
FunctionGetHttppage (URL)
onerrorresumenext
dimhttp
setthttp = server.createObject (msxml2.xmlhttp)
http.openget, url, false
http.send ()
ifhttp.readystate <> 4 จากนั้น
exitfunction
endif
gethttppage = bytestobstr (http.responsebody, gb2312)
setthttp = ไม่มีอะไร
iferr.number <> 0 แล้ว
Response.write <divalign = 'center'> <b> เซิร์ฟเวอร์ที่ทำผิดพลาดในการรับเนื้อหาไฟล์ </b> </div>
err.lear
endif
endfunction
'สตรีมไบต์แปลงเป็นสตริง
FunctionByTestobstr (Body, CSET)
dimobjstream
setObjstream = server.createObject (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 = ไม่มีอะไร
endfunction
'สตริงการสกัดกั้น, 1 รวมก่อนและหลังสตริง 2. ไม่รวมก่อนและหลังสตริง
functionStrcut (strcontent, startstr, endstr, cuttype)
Dims1, S2
onerrorresumenext
Selectcasecuttype
กรณีที่ 1
s1 = instr (strcontent, startstr)
s2 = instr (s1, strcontent, endstr)+len (endstr)
กรณีที่ 2
s1 = instr (strcontent, startstr)+len (startstr)
s2 = instr (s1, strcontent, endstr)
endelect
Iferrthen
strcute = <palign = 'center'> <fontsize = -1> ข้อผิดพลาดเกิดขึ้นการสกัดกั้นสตริง </font> </p>
err.lear
exitfunction
อื่น
strcut = mid (strcontent, s1, s2-s1)
endif
endfunction
-
คัดลอกรหัสด้านบนไปยัง Notepad และบันทึกเป็น Searchi_bd.asp และคุณสามารถใช้งานได้ หากคุณต้องการเปลี่ยนชื่อไฟล์โปรดเปลี่ยนส่วนการระบุสีน้ำเงินของรหัสต่อไปนี้เป็นชื่อไฟล์ของคุณ
strpage = แทนที่ (strpage, href = s?, href = searchi_bd.asp?)
คำอธิบายเล็กน้อย:
1. การค้นหา Baidu โดยทั่วไปไม่มีมาตรการต่อต้านการสะสม ประเด็นหลักคือ Baidu จะเปลี่ยนซอร์สโค้ดของหน้าผลการส่งคืนทุกครั้งในขณะที่คุณควรสังเกตหน้าผลการค้นหาของ Baidu หากรหัสเปลี่ยนไปคุณสามารถเปลี่ยนโลโก้สตริง ในแง่ของการต่อต้านการสะสม Baidu มีน้ำใจมากกว่า Google มาก ในปัจจุบันไม่มีปรากฏการณ์ของการปิดกั้น IP ของไซต์แหล่งกำเนิดชั่วคราวเนื่องจากการสืบค้นบ่อยครั้งของ Baidu ปรากฏการณ์นี้มักจะเกิดขึ้นใน Google Queries วิธีการแก้ปัญหาจะถูกกล่าวถึงในบทความถัดไป
2. การรวบรวมใช้ทรัพยากรมากขึ้นและการค้นหาขโมยนั้นเหมือนกับการค้นหาโปรแกรมดังนั้นลองปล่อยตัวแปรหรือวัตถุให้เร็วที่สุดเท่าที่จะทำได้ในโปรแกรม หากคุณไม่มีทรัพยากรพื้นที่มากขอแนะนำไม่ให้ทำสิ่งเหล่านี้
3. บางคนอาจไม่ต้องการรักษาการเชื่อมต่อการทำงานของ Baidu ไว้ในขโมยค้นหาที่พวกเขาทำเช่น Snapshots Baidu และฟังก์ชั่นการค้นหาในสถานที่ ด้วยเหตุนี้ฉันจึงจัดเตรียมเวอร์ชันที่เรียบง่ายโดยไม่ต้องเชื่อมต่อกับ Baidu ในแพ็คเกจดาวน์โหลด คุณสามารถใช้มันได้ตามต้องการ รหัสจะไม่อยู่ในรายการในบทความนี้ซึ่งจริง ๆ แล้วคล้ายกับเวอร์ชันเต็ม
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุนช่องเทคโนโลยีใหม่ที่ผิด