Каким образом можно вытащить текст со страницы и проанализировать его? php
Собствено интересует, как делают контекстный поиск скажем? Если информация идет не с базы данных. Ну самая простая реализация.
В общем с помощью чего и как это делается на php?
Ответы (5)
RSSДополнение #1, понимаете, всё что требует выхода из оперативной памяти (файлы, база данных), а тем более запрос к другому серверу это не есть хорошо и быстро. Да и парсинг страницы (ну пусть 3-4 кб) вещь не очень хорошая... однако есть всё это повесить на cron и запускать раз в несколько часов, то можно получить неплохой результат...
Но страничек по 3-4 кб я уже не видел, большинство имеет столько таблиц, дивов и прочей лабуды что начинаешь сочуствовать striptags.
P.S. Если хотите потренировать в сокетах и заголовках ответа, попробуйте провести telnet запрос к какому нибудь сайту, всё будет происходить по спецификациям HTTP, в гугле можно найти примеры.
@bestia, просто и сердито, но слишком. Так например POST запрос не послать. )
toper-sib
Вот я накидал пример (без проверки на ошибки т.д.) - очень простенький.
$fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.google.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
$result = '';
while (!feof($fp))
$result.=fgets($fp, 128);
fclose($fp);
//Работаем с result
echo $result;
И он мне ответил:
HTTP/1.0 302 Moved Temporarily
Location: http://www.google.com.by/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Set-Cookie: PREF=ID=14305b6c6b9edc40:TM=1229286409:LM=1229286409:S=4GJSKnSor92RyWW8; expires=Tue, 14-Dec-2010 20:26:49 GMT; path=/; domain=.google.com
Date: Sun, 14 Dec 2008 20:26:49 GMT
Server: gws
Content-Length: 222
X-Cache: MISS from cache-engine3.belsonet.net
X-Cache-Lookup: MISS from cache-engine3.belsonet.net:3128
Via: 1.0 cache-engine3.belsonet.net:3128 (squid)
Connection: close
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.com.by/">here</A>.
</BODY></HTML>
Вверху заголовки ответа, а внизу сами данные. ) Извините за большое количество текста.
whoever
Затем уже анализируется содержимое страницы, можно вырезать все теги и посчитаь наиболее частые слова. Однако заниматся такими вещами в одиночку не советую, не даром ведь гугл и яндек угрохали столько средств. Возможно вы и получите результат, но цено огромной базы либо загруженного ЦП...
Парсить и грабить страницы актуально только в тех случаях когда без этого никак... ну например хочется вырезать курс валют (удобнее правда через rss).
agirov-rtur
varvarrrra
Если имеется ввиду РНР код, с помощью которого была страница сгенерирована, то никак, т.к. работает интерпритатор на сервере и обойти его можно только скачав сам файл по ftp
oh-shi
Вопрос закрыт