Автор Тема: Паук для поисковой системы  (Прочитано 4831 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Lutik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 184
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.galiongroup.ru
Паук для поисковой системы
« : 28 Января 2005, 11:52:43 »
Проблема следущего характера!
Написал рекурсивную функцию, которая просматривает все страницы и соберает ссылки, потом в цикле открываю ссылку удаляю весь хтмл и сую его в базу, но скрипт обрабатывает в среднем 22 ссылки а потом просто виснет!
Предложите альтернативный вариант паучка :rolleyes:
Или помогите довести до ума этот! :rolleyes:
Вот скрипт:

include(\'config_inc.php\');

function index($dir)
	
	
	
	
	
	
{

	
	
	
	
	
	
	
if(is_readable($dir2=$dir))
	
	
	
	
	
	
	
{
	
	
	
	
	
	
	
	
$OpenDir=opendir($dir);
	
	
	
	
	
	
	
	
	
while(($file=readdir($OpenDir))!==false)
	
	
	
	
	
	
	
	
	
{
	
	
	
	
	
	
	
	
	
	
if($file!="."&&$file!=".." && $file!="admin" && $file!="map" && $file!="forum" && $file!="desk")
	
	
	
	
	
	
	
	
	
	
{
	
	
	
	
	
	
	
	
	
	
	
	
if(is_dir($dir.chr(47).$file))
	
	
	
	
	
	
	
	
	
	
	
	
index($dir.chr(47).$file);
                                                else
	
	
	
	
	
	
	
	
	
	
	
	
{
                                                if (substr($file,-4) == ".php" || substr($file,-4) == ".html" || substr($file,-4) == ".htm" || substr($file,-4) == ".shtml" ){
                                                if ($file!="indexing.php" && $file!="main1.php" && $file!="connect.php" && $file!="sch.php" && $file!="vv.php"){
	
	
	
	
	
	
	
	
	
	
	
	
$OpenFile=fopen($dir.chr(47).$file,\'r\');
	
	
	
	
	
	
	
	
	
	
	
	
$content=fread($OpenFile,filesize($dir.chr(47).$file));
                                                $content=preg_replace("/ +/s"," ",$content);
                                                $dir2=str_replace(".","",$dir2);
                                                preg_match_all("/<[Aa][ \\r\\n\\t]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ \'\\"\\n\\r\\t]*([^ \\"\'>\\r\\n\\t#]+)[^>]*>/",$content,$uri);
                                                $content=null;
                                                foreach($uri[1] as $uri){
                                                $uri=preg_replace("/PHP_SELF/", "$file", $uri);
                                                $uri=str_replace("$", "", $uri);
                                                $uri=str_replace("mailto:iapp@ua.fm", "index.php", $uri);
                                                $uri=str_replace("mailto:2Spro@ua.fm", "index.php", $uri);
                                                $uri=str_replace("http://www.dmeti.dp.ua/index.html", "index.php", $uri);
                                                $uri=str_replace("../", "", $uri);
                                                $url="http://".$_SERVER["SERVER_NAME"].$dir2.chr(47).$uri;
                                                $res=mysql_query("Select link from search where link=\'$url\'") or die (mysql_error());
                                                $num=mysql_num_rows($res);
                                                echo $num."
";
                                                if($num==0){
                                                $cont=file_get_contents($url);
mysql_query("insert into search (word, link) values(\'".addslashes($cont)."\', \'$url\')") or die(mysql_error());
                                                }
                                                }

                                                    fclose($OpenFile);
	
	
	
	
	
	
	
	
	
	
	
	
}
                                              }
                                           }
	
	
	
	
	
	
	
	
	
	
}
	
	
	
	
	
	
	
	
	
}
	
	
	
	
	
	
	
}
	
	
	
	
	
	
}
                        $dir=".";
                        index($dir);
                        echo "<a href=# onClick=\'document.history.back()\'>Назад</a>";

Разум когда-нибудь победит

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Паук для поисковой системы
« Ответ #1 : 28 Января 2005, 12:46:08 »
Цитировать
Lutik:
Предложите альтернативный вариант паучка

C

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Паук для поисковой системы
« Ответ #2 : 28 Января 2005, 13:07:12 »
это выполняется в mod_php или php-cli  ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Lutik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 184
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.galiongroup.ru
Паук для поисковой системы
« Ответ #3 : 28 Января 2005, 13:20:52 »
Цитировать
это выполняется в mod_php или php-cli ?

выполняется в mod_php
Разум когда-нибудь победит

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Паук для поисковой системы
« Ответ #4 : 28 Января 2005, 14:40:23 »
такие скрипты от сервера не запускают.
mod_php здесь использовать нельзя.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Lutik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 184
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.galiongroup.ru
Паук для поисковой системы
« Ответ #5 : 28 Января 2005, 16:03:02 »
А если у хостинга нет возможности пускать php-cli?(я просто не очень силен в настройках серверов!)
Как быть тогда?
Разум когда-нибудь победит

Оффлайн attilla

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 90
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Паук для поисковой системы
« Ответ #6 : 31 Января 2005, 06:00:38 »
Цитировать
Lutik:
А если у хостинга нет возможности пускать php-cli?(я просто не очень силен в настройках серверов!) Как быть тогда?

Менять хостинг

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Паук для поисковой системы
« Ответ #7 : 31 Января 2005, 12:54:01 »
Lutik
тебе нужен хостинг, который позволяет запускть процессы в фон.
типа :
exec(\'/usr/bin/perl /path/to/your/spider.pl ......\');
Если хостер разрешает например так использовать perl / python /ruby - то можешь паука написать на нем и запускать его чере [p]exec[/p] или похожие функции (или вообще через cron)

Или меняй хостинг.

Посмотри phpinfo(), есть ли в ключах компиляции --enable-cli
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Lutik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 184
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.galiongroup.ru
Паук для поисковой системы
« Ответ #8 : 31 Января 2005, 13:21:17 »
Макс, да проверял! нет там такого :( , а в перле я дундук вообще! хотя може и раздуплюсь :)  А такой вопрос можно ли запустить сишьный скрипт, ню например как cgi скрипт или както еще?
Разум когда-нибудь победит

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Паук для поисковой системы
« Ответ #9 : 31 Января 2005, 13:54:04 »
Цитировать
Lutik:
сишьный скрипт

На С - это уже будет программа а не скрипт (ИМХО).
Можно или нельзя ее запустить - надо спросить у хостера.
И запускать ее все равно надо будет в фон (а не CGI)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28