Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Интеллект в скрипте
 
 автор: Воронцев   (08.10.2005 в 09:22)
 
 

Добрый день, вот шеф задушит, если я в течении 10 дней не напишу скрипт с интеллектом, вот в чем заключается суть:
1. Он дает ссылку на сайт, на котором находится большое колличество
сайтов. То есть это каталог сайтов.
2. Все эти сайты нужно скопировать и поместить в базу MySQL. То есть
написать скрипт, который автоматически скопирует все сайты и поместит
их в базу данных.

------------------------------------------
nead help

   
 
 автор: Shorr Kan   (08.10.2005 в 09:37)   письмо автору
 
   для: Воронцев   (08.10.2005 в 09:22)
 

А можно поточнее - что такое "скопирует" сайты? Как Offline-Manager'ы ? Или еще как-то?

   
 
 автор: Loki   (08.10.2005 в 11:52)   письмо автору
 
   для: Shorr Kan   (08.10.2005 в 09:37)
 

Есть подозрение, что речь идет только об URL адресах.

   
 
 автор: Воронцев   (08.10.2005 в 12:40)
 
   для: Loki   (08.10.2005 в 11:52)
 

Необходимо копировать URL и дескрипшен

   
 
 автор: Михалыч   (08.10.2005 в 12:59)   письмо автору
 
   для: Воронцев   (08.10.2005 в 12:40)
 

Ну давай тогда начнём размышлять. И так.

1)Скажем, мы заносим в скрипт, адресса сайтов на которых присутсвует каталог других сайтов и где происходит постоянное обновление.

2) Мы задаём интервал проверки этих сайтов. Скажем раз в 30 минут.

3) Мы копируем в базу данных все строки где в начале присутсвует " www"

Надеюсь начальную логику я сформулировал правельно. Теперь важно знать для чего тебе эти адресса.

Если тебе нужны описания этих сайтов, то можно провернуть такую вещь:

4) Скрипт заходит на каждый сайт и копирует title в базу данных.

   
 
 автор: napTu3aH   (08.10.2005 в 13:32)   письмо автору
 
   для: Воронцев   (08.10.2005 в 12:40)
 

Я думаю описания ссылки находиться на той же странице где и ссылка.
Вам помогут регулярные выражения+запросы Мускула.
Похожие темы с разбором ссылок
http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=2731
http://softtime.ru/forum/read.php?id_forum=6&id_theme=7103

Хотя все зависит от структуры страницы, с которой вы хотите извлеч информацию.

P.S. А владелец сайта не против того, что вы хотите сделать практически копию его сайта? Возможно он месяцами и годами собирал информацию... А может тоже взял у конкурента.
P.P.S. Ладно чего то я разболтался, это личное дело каждого, где и как брать информацию

   
 
 автор: cheops   (08.10.2005 в 14:13)   письмо автору
 
   для: Воронцев   (08.10.2005 в 09:22)
 

Мини-поисковый робот? Хм... у вас сервер свой или имеется только хостинг? Дело в том, что на хостинге время выполнения PHP-скрипта ограничено 30 секундами - вряд ли за это время скрипт управится с обходом.

   
 
 автор: Воронцев   (08.10.2005 в 17:09)
 
   для: cheops   (08.10.2005 в 14:13)
 

Да ..имеется сервер

   
 
 автор: cheops   (08.10.2005 в 19:21)   письмо автору
 
   для: Воронцев   (08.10.2005 в 17:09)
 

А в чём сложность? Просто не видно конкретного вопроса... у вас затруднение в
1) алгоритме
2) реализации конкретных узлов

   
 
 автор: Воронцев   (09.10.2005 в 00:01)
 
   для: cheops   (08.10.2005 в 19:21)
 

У меня затруднение именно в алгоритме .....
Каким образом это можно реализовать ? Ведь есть каталоги с разным форматом ссылок...

   
 
 автор: Михалыч   (09.10.2005 в 00:10)   письмо автору
 
   для: Воронцев   (09.10.2005 в 00:01)
 

Я думаю вырожу общее мненее если попрошу уточнить задачу.

   
 
 автор: cheops   (09.10.2005 в 02:03)   письмо автору
 
   для: Воронцев   (09.10.2005 в 00:01)
 

Вам нужно написать свой мини-робот, что-то вроде Yandex или Rambler - они действуют точно также, берут за основу каталог и идут по ссылкам, перемалывая весь Интернет. Ну сейчас-то у них база данных большая и они идут по собственным ссылкам.
Главная проблема: ссылки могут быть циклическими, поэтому необходимо сохранять хэш страницы и сверятся - не было ли уже такого хэша. Во вторых следует ограничить глубину - т.е. число переходов от материнской ссылки.
Лучше всё хранить в базе данных.

1) Загружаем страницу, например при помощи функции file_get_contents() - если PHP старый и такой функции нет, можно использовать следующую функцию
<?php
  
function openpage($link)
  {
      
$fd fopen($link"r");
      
$text="";           
      if (!
$fd) echo "Запрашиваемая страница не найдена";
      else
      {
         while (!
feof ($fd))
         {
            
$text .= fgets($fd10240);
         }
      }
      
fclose ($fd);   
      return 
$text;   
  }
?>

2) Сохраняем в базу данных содержимое страницы, хэш, глубину. Предварительно смотрим нет ли такого хэша в базе данных - если есть отбрасываем.
3) Разбираем страницу: при помощи регулярного выражения ищем все ссылки - посмотрите его в теме http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=7875 - если будут трудности в использовании - задайте вопрос в разделе Регулярные выражения
4) Осуществляем рекурсивный спуск - т.е. повторяем всесь цикл для каждой и ссылок.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования