Многие идеи людей иметь собственную поисковую систему, но как мы можем иметь свою собственную поисковую систему? Теперь редактор научит вас, как использовать текущие популярные методы сбора данных для реализации собственной поисковой системы. Теперь давайте посмотрим на методы создания собственной поисковой системы.
1. Понять поиск в Байду
Baidu Search, крупнейшая в мире китайская поисковая система, была указана в NASDAQ в Соединенных Штатах 5 августа 2005 года. В настоящее время это поисковая система с наибольшим количеством использования пользователей в Китае, предоставляя различные поиски, такие как веб -страницы, новости, картинки, музыка, карты и т. Д.
1. Параметры запроса для веб -поиска Baidu
Требуемые параметры
☆ WD-Ключевое слово для запроса (ключевое слово)
☆ PN-Несколько страниц, показывающих результат (PageNumber)
☆ Cl-Search Type (Class), Cl = 3-веб-поиск
Дополнительные параметры
☆ RN-Количество результатов поиска (RecordNumber), диапазон значений составляет от 10 до 100, настройка по умолчанию-RN = 10
☆ IE-Query Кодирование входного текста (входное оборудование), настройка по умолчанию-IE = GB2312, который упрощается китайский
☆ TN-исходный сайт для отправки запроса на поиск
Несколько полезных TNS
TN = Baidulocal означает, что поиск на сайте Baidu, возвращаемые результаты очень чистые и нет рекламных помех. Например, ищите счастье на Байду, чтобы увидеть, освежают ли результаты.
TN = Baiducnnic хочет поставить Baidu в рамку? Просто попробуйте этот параметр, он настроен Baidu для CNNIC
☆ SI-поиск в ограниченных доменных именах. Например, если вы хотите искать на веб -сайте Sina, вы можете использовать параметр si = sina.com.cn. Чтобы сделать этот параметр эффективным, вы должны использовать его в сочетании с параметром КТ.
☆ CT-значение этого параметра, как правило, является серией чисел, которая оценивается в код проверки для запроса поиска.
Используйте параметры SI и CT в комбинации, например, поиск идеалов на sina.com.cn, доступно: http://www.baidu.com/baidu?ie=utf-8&am...n&cl=3&word=ideal
☆ BS-ключевое слово последнего поиска (Beforesearch), которое, по оценкам, связано с связанными поисками.
2.
Согласно структуре исходного кода, сверху вниз:
Поле поиска
Фиксированный рейтинг горячих зон справа
Результаты поиска
Площадь страна
Связанные поиски
Нижний поле поиска
Площадь авторских прав
Результаты поиска и область страниц - это действительные данные, которые нам нужны. Согласно результатам кода, вы можете найти его уникальный идентификатор строки. Просто используйте этот идентификатор, чтобы перехватить контент. Для получения подробной информации, посмотрите на следующий код.
2. Функция основной функции-xmlhttp component с использованием asp
Программа сбора данных, широко известная как программа THIF, является основной частью этого компонента XMLHTTP. Немного старомодно использовать XMLHTTP для сбора данных, а также много онлайн-информации. Как правило, код сбора
setThttp = server.createObject (msxml2.xmlhttp)
Http.openget, url, false'open xmlhttp
Http.send () 'Отправить запрос
ifhttp.readystate <> 4then
Выходная функция
эндиф
gethttppage = bytestobstr (http.responsebody, gb2312) 'вернуть результат (обычно байтовый поток) и преобразовать поток байта в строку
setThttp = Nothing'Release xmlhttp
См. Полный код ниже для подробного приложения
3. Полный код (имя файла: search_bd.asp)
<%
OptionExplice
Dimwd, Pn
WD = запрос (WD)
pn = request.querystring (pn)
'Запуск ошибок обработки
OnerRorResumenext
Iferr.number <> 0then
Response.clear
'Показать сообщение об ошибке пользователю
В ответ есть ошибка. Writh <palign = 'center'> <fontsize = 3>, пожалуйста, откройте поиск Baidu еще раз. </Font> </p>
эндиф
%>
<html>
<Голова>
<Title> Baidu Search-<%= wd%> </title>
</Head>
<Styletype = 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%сотовая клетка = 0cellPadding = 0border = 0bgcolor =#ffffff>
<tr>
<formname = f1method = postaction = search_bd.asp>
<tdwidth = 150Height = 50>
Ваш логотип
</td>
<tdalign = Left>
<inputname = wdsize = 40maxlength = 100title = введите ключевые слова, а затем давайте поиск ... value = <%= wd%>>
<inputType = OpportValue = Baidu Search>
</td> </form> </tr>
</table>
<%
Dimstrurl, strtmp_bd, strinfo, strpage, strpagesum_bd, strqtime_bd
Dimbnoresult_bd, regex, patrn
'Baidu Query String
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
Эндиф
'Перехватить содержание раздела результатов поиска
strinfo = strcut (strtmp_bd, <divid = scriptDiv> </div>, <brclear = all>, 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 = all>, <br>, 2)
strpage = reply (strpage, href = s?, href = search_bd.asp?)
'Количество результатов и времени
strpagesum_bd = strcut (strtmp_bd, найдите соответствующую веб -страницу, статья, 2)
ifnotisnumeric (strpagesum_bd), тогда
strpagesum_bd = strcut (strtmp_bd, найдите соответствующую веб -страницу, статья, 2)
эндиф
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 = ighterbgcolor =#eeeeeeee> <bobr> Найдите соответствующие веб -страницы, которые соответствуют <b> <%= wd%> </b> <b> <%= strpagesum_bd%> </b> и возьмите <b> <%= strqtime_bd%> </b> seconds </nobr> </td> <%= strqtime_bd%> </b>
</tr>
<tr> <tdbgcolor =#999999colspan = 3Height = 2> </td> </tr> </table>
</td>
</tr>
</table>
<%
ifwd = then
Response.write <palign = 'center'> <fontsize = -1> Привет, введите ключевые слова в поле поиска. </Font> </p>
elseifbnoresult_bd = 1then
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 <> 4then
Выходная функция
эндиф
gethttppage = bytestobstr (http.responsebody, gb2312)
SETTHTTP = ничего
Iferr.number <> 0then
Response.write <divalign = 'center'> <b> Сервер ошибся в получении содержимого файла </b> </div>
Err.clear
Эндиф
Конечная функция
'Byte Stream преобразуется в строку
Functionbytestobstr (тело, 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 = ничего
Конечная функция
'Перехват строки, 1. включает в себя до и после строк, 2. Не включая до и после строк
FunctionStrcut (Strcontent, Startstr, Endstr, Cuttype)
Dims1, S2
OnerRorResumenext
Выберите CaseCuttype
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
Выходная функция
Еще
strcut = mid (strcontent, s1, s2-s1)
Эндиф
Конечная функция
%>
Скопируйте приведенный выше код, чтобы отметить и сохранить его как search_bd.asp, и вы можете использовать его. Если вы хотите изменить имя файла, также измените синюю идентификационную часть следующего кода на имя вашего файла
strpage = reply (strpage, href = s?, href = search_bd.asp?)
Несколько объяснений:
1. Поиск в Baidu в основном не имеет никаких анти-коллекций. Главное время заключается в том, что Baidu время от времени изменяет исходный код страницы результатов возврата, поэтому вы часто должны наблюдать за страницей результатов поиска Baidu. Если код изменяется, вы можете изменить логотип строки. С точки зрения анти-коллекции, Baidu гораздо более щедро, чем Google. В настоящее время нет явления временного блокировки IP исходного сайта из -за частых запросов Baidu. Это явление часто встречается в Google запросах. Как решить это обсуждается в следующей статье.
2. Сбор является большим количеством ресурсов, а поиск воров-это то же самое, что ищет программы, поэтому попробуйте выпустить переменные или объекты как можно раньше в программе. Если у вас мало космических ресурсов, рекомендуется не делать этих вещей.
3. Некоторые люди, возможно, не захотят сохранять какие-либо функциональные соединения Baidu в поисковом воре, который они делают, такие как снимки Baidu и функции поиска на месте. По этой причине я предоставляю упрощенную версию без какого -либо подключения к Baidu в пакете загрузки. Вы можете использовать его по мере необходимости. Код не будет перечислен в этой статье, которая на самом деле похожа на полную версию.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать неправильный новый технологический канал.