Каким образом можно вытащить текст со страницы и проанализировать его? php





Собствено интересует, как делают контекстный поиск скажем? Если информация идет не с базы данных. Ну самая простая реализация.
В общем с помощью чего и как это делается на php?

Ответы (5)

RSS
+
0
Заранее извиняюсь за отсуствие некоторых букв, моя клавиатура пережила мытьё в душе...

Дополнение #1, понимаете, всё что требует выхода из оперативной памяти (файлы, база данных), а тем более запрос к другому серверу это не есть хорошо и быстро. Да и парсинг страницы (ну пусть 3-4 кб) вещь не очень хорошая... однако есть всё это повесить на cron и запускать раз в несколько часов, то можно получить неплохой результат...

Но страничек по 3-4 кб я уже не видел, большинство имеет столько таблиц, дивов и прочей лабуды что начинаешь сочуствовать striptags.

P.S. Если хотите потренировать в сокетах и заголовках ответа, попробуйте провести telnet запрос к какому нибудь сайту, всё будет происходить по спецификациям HTTP, в гугле можно найти примеры.

@bestia, просто и сердито, но слишком. Так например POST запрос не послать. )
avatar

toper-sib

  • 16 июля 2009, 02:46
+
0
Дополнение #2, посылать запросы и принимать данные используя HTTP.

Вот я накидал пример (без проверки на ошибки т.д.) - очень простенький.

$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>

Вверху заголовки ответа, а внизу сами данные. ) Извините за большое количество текста.
avatar

whoever

  • 7 июля 2009, 04:49
+
0
Хмм... не хочу повторятся про сокеты и получение содержимого страницы, думаю в данном случае даже лучше использовать CURL...
Затем уже анализируется содержимое страницы, можно вырезать все теги и посчитаь наиболее частые слова. Однако заниматся такими вещами в одиночку не советую, не даром ведь гугл и яндек угрохали столько средств. Возможно вы и получите результат, но цено огромной базы либо загруженного ЦП...

Парсить и грабить страницы актуально только в тех случаях когда без этого никак... ну например хочется вырезать курс валют (удобнее правда через rss).
avatar

agirov-rtur

  • 26 июля 2009, 19:16
+
0
f.e. fopen & fread
avatar

varvarrrra

  • 26 июня 2009, 01:49
+
0
Зависит от браузера, в основонм правой кнопкой кликаем, далее по наитию смотрим исходный код HTML/
Если имеется ввиду РНР код, с помощью которого была страница сгенерирована, то никак, т.к. работает интерпритатор на сервере и обойти его можно только скачав сам файл по ftp
avatar

oh-shi

  • 13 июля 2009, 23:03

Вопрос закрыт