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

Форум PHP

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

 

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

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

тема: Граббер новостей
 
 автор: kis-kis   (28.02.2008 в 17:57)   письмо автору
 
 

Подскажите, как реализовать граббер новостей с 10 источников или более. Чтобы новости заносились в базу данных.
Заранее спасибо.

   
 
 автор: mihdan   (28.02.2008 в 18:42)   письмо автору
 
   для: kis-kis   (28.02.2008 в 17:57)
 

А что именно нужно. Формат сайты итог???

   
 
 автор: kis-kis   (28.02.2008 в 21:15)   письмо автору
 
   для: mihdan   (28.02.2008 в 18:42)
 

Думаю лучший пример - Яндекс.Новости ))

   
 
 автор: kis-kis   (29.02.2008 в 10:14)   письмо автору
 
   для: kis-kis   (28.02.2008 в 21:15)
 

Уточнение, нужно будет использовать RSS-потоки.

   
 
 автор: SHAman   (29.02.2008 в 12:38)   письмо автору
 
   для: kis-kis   (29.02.2008 в 10:14)
 

Возможно, окажутся полезными мои статьи:
Грабим RSS гисметео
Как правильно грабить сайты

Если что - обращайтесь.

[поправлено модератором]

   
 
 автор: kis-kis   (07.03.2008 в 09:43)   письмо автору
 
   для: mihdan   (28.02.2008 в 18:42)
 

Допустим, граббер я сделал. А как можно избежать дублирования новостей?
Спасибо.

   
 
 автор: SHAman   (07.03.2008 в 10:07)   письмо автору
 
   для: kis-kis   (07.03.2008 в 09:43)
 

Можно просто брать md5 код каждой новости (или заголовка). Если они совпадают, то новость та же самая. Правда, есть момент: один лишний пробел в тексте и md5 не совпадут.

Если это не устраивает, то милости просим написать систему, являющуюся по сути, искусственным интеллектом, которая смогла бы понимать текст и сравнивать его смысл со смыслом другого текста:) Думаю, много денег заработаете на такой системке)

   
 
 автор: kis-kis   (07.03.2008 в 10:11)   письмо автору
 
   для: SHAman   (07.03.2008 в 10:07)
 

А если поступить так: брать время последнего посещения сайта источника, и если время новостей больше этого времени - то брать новости, иначе нет. Как такой вариант?

   
 
 автор: Night_Charter   (07.03.2008 в 10:31)   письмо автору
 
   для: kis-kis   (07.03.2008 в 10:11)
 

Можно поступить немного иначе.
Находишь 24 тематических сайта, раз в час парсишь определенный сайт из этого списка.
Сравнивать новости можно по заголовку.

   
 
 автор: kis-kis   (07.03.2008 в 10:41)   письмо автору
 
   для: Night_Charter   (07.03.2008 в 10:31)
 

А почему именно 24? И раз в час? ))

   
 
 автор: Night_Charter   (07.03.2008 в 10:46)   письмо автору
 
   для: kis-kis   (07.03.2008 в 10:41)
 

Да... Забыл дописать )
Присваиваем сайтам ключ часа в массиве.
Ставим на крон, и система готова.

   
 
 автор: kis-kis   (07.03.2008 в 11:04)   письмо автору
 
   для: Night_Charter   (07.03.2008 в 10:46)
 

А если сравнивать время, то в каком формате лучше?

   
 
 автор: mihdan   (07.03.2008 в 11:58)   письмо автору
 
   для: kis-kis   (07.03.2008 в 11:04)
 

timestamp

   
 
 автор: kis-kis   (07.03.2008 в 12:20)   письмо автору
 
   для: mihdan   (07.03.2008 в 11:58)
 

ок, спасибо. Новости хранятся в базе, время в формате timestamp, как можно выбрать самую свежую новость по времени?

   
 
 автор: SHAman   (07.03.2008 в 13:12)   письмо автору
 
   для: kis-kis   (07.03.2008 в 12:20)
 

То есть, проверка идет не по контенту, а по обновлению? Хе, ну тут все проще:) Я думал на разных сайтах могут новости повторяться - типа копипаст. Если так, то все гораздо сложнее.

   
 
 автор: kis-kis   (07.03.2008 в 13:15)   письмо автору
 
   для: kis-kis   (07.03.2008 в 12:20)
 

Так, почему-то, выводит неправильно -

$query_last_date = "SELECT ndate as lastdate FROM news_db order by id asc limit 1";

   
 
 автор: kis-kis   (07.03.2008 в 14:54)   письмо автору
 
   для: kis-kis   (07.03.2008 в 13:15)
 

Никто не подскажет?

   
 
 автор: cheops   (07.03.2008 в 15:15)   письмо автору
 
   для: kis-kis   (07.03.2008 в 13:15)
 

В чём выражается "неправильность" вывода?

   
 
 автор: kis-kis   (18.03.2008 в 18:08)   письмо автору
 
   для: cheops   (07.03.2008 в 15:15)
 

Все, работает, это я тормозил. ))

А как вырезать из импортированных новостей это <![CDATA[]]>


<![CDATA[Состоится online-конференция "Новинки летнего туристического сезона - 2008"]]>

   
 
 автор: kis-kis   (20.03.2008 в 13:41)   письмо автору
 
   для: kis-kis   (18.03.2008 в 18:08)
 

Никто не подскажет?

   
 
 автор: mihdan   (07.03.2008 в 16:58)   письмо автору
 
   для: kis-kis   (07.03.2008 в 13:15)
 


<?
$query_last_date 
"SELECT ndate as lastdate FROM news_db order by id desc limit 1"
?>

   
Rambler's Top100
вверх

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