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

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

 

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

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

тема: небольшой пасер гугла
 
 автор: DEM   (22.04.2008 в 22:36)   письмо автору
 
 

Давно тут уже не появлялось заданий, потому решил написать такую фот... Хотя конечно врядли это задание будет довольно интересным (раньше никогда не писал ничего подобного), но надеюсь хоть кого-то захватит решение этого задания :) Сам учавствовать не буду, так как у меня будет всё равно преимущество, хоть я никогда парсеров и не писал :( Но может просто напишу, как бы я это решил :)

----------------------------
Описание:
Пользователь вводит данные в текстовое поле, скрипт отправляет запрос www.google.com и нам надо получить n-ое количество ссылок.
----------------------------
Входные данные:
  - Тексто поиска в гугле (тектосове поле)
  - Количество обрабатываемых ссылок (выпадающий ссылок, от 1, до 15)
----------------------------
Выходные данные:
  - Массив в которо хранятся следующие данные:
1) Сама ссылка
2) Описание ссылки
3) Текст ссылки (<a href=''>ВОТ ЭТОТ ТЕКСТ!</a>)
4) Номер ссылки по счёту
----------------------------
Остальное:
  - вывод ассива в виде HTML таблицы вида:
----------------------------
|Титл|Ссылка|Текст|
----------------------------

Так же это всё надо сохранить в БД.
Сама таблица:
CREATE TABLE `parser` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`name` TEXT NOT NULL ,
`URL` TEXT NOT NULL ,
`TEXT` TEXT NOT NULL ,
`TITLE` TEXT NOT NULL ,
`num` INT( 11 ) NOT NULL ,
PRIMARY KEY ( `id` ) 
);

id - ID-номер записи... заполняется автоматически
name - текст вводимый пользователем для поиска
URL - ссылка 
TEXT - Описание ссылки
TITLE -  Текст ссылки (<a href=''>ВОТ ЭТОТ ТЕКСТ!</a>)
num - номер этой ссылки
------------------------


Желаю всем, кто захочет принять участие, удачи!


ЗЫ. просьба всем, кто будет учавствовать, написать тут...

   
 
 автор: Atheist   (23.04.2008 в 00:12)   письмо автору
 
   для: DEM   (22.04.2008 в 22:36)
 

А что получает победитель?

   
 
 автор: DEM   (23.04.2008 в 08:36)   письмо автору
 
   для: Atheist   (23.04.2008 в 00:12)
 

То же самое, что и за остальные задачи - ничего :) Задачие - это способ проверить себя в знаниях РНР, а не показать всем что все отстойники, а ты один молодец.

   
 
 автор: Atheist   (23.04.2008 в 09:20)   письмо автору
 
   для: DEM   (23.04.2008 в 08:36)
 

Тогда это несерьезно.

   
 
 автор: mechanic   (23.04.2008 в 09:36)   письмо автору
 
   для: Atheist   (23.04.2008 в 09:20)
 

кому как
я бы легко написал такую хрень, + надо еще добавить листалку по страницам
полученный на выходе класс будет хорошей основой поиска по сайту, который легко встроится в дизайн сайта.. можно даже на аяксе получать результаты и листать..

   
 
 автор: Atheist   (23.04.2008 в 09:40)   письмо автору
 
   для: mechanic   (23.04.2008 в 09:36)
 

Посоревнуемсо?

   
 
 автор: mechanic   (23.04.2008 в 09:41)   письмо автору
 
   для: Atheist   (23.04.2008 в 09:40)
 

каковы условия? )
просто "кто первый"?

   
 
 автор: Atheist   (23.04.2008 в 09:47)   письмо автору
 
   для: mechanic   (23.04.2008 в 09:41)
 

Тут, по-моему, админы объявляют о начале. Потом в течение нескольких дней отправляется код через какую-то форму. В опр. день все коды становятся видимыми. Почитай другие темы...

   
 
 автор: mechanic   (23.04.2008 в 09:58)   письмо автору
 
   для: Atheist   (23.04.2008 в 09:47)
 

чет не нашел правил.. можно ссылку, если таковые вообще тут прописаны?
а так я согласен на задание, мне такой класс пригодится )

   
 
 автор: Atheist   (23.04.2008 в 21:12)   письмо автору
 
   для: mechanic   (23.04.2008 в 09:58)
 

Вот пример: http://softtime.ru/forum/read.php?id_forum=7&id_theme=37909

> cheops (24.05.2007 в 23:52)
>Ответы принимаются до 1 июня 2007 года (т.е. времени примерно неделя).
> Оставлять ответы следует в специальной форме по ссылке http://www.softtime.ru/task/addthemeform.php?id_task=21 - во время X (т.е. в ночь на 1 июня 2007 года) они все будут автоматически размещены в этой ветке форума, после чего начнётся их оценка.

> mr Bin (24.05.2007 в 12:19)
> Было бы больше ответов, если бы был приз :) например месяц хостинга :)

> cheops (24.05.2007 в 12:30)
> Идёт - победитель (определяется Trianon и мной) получает месяц бесплатного хостинга на st-host.ru.

Т.е. должен cheops к этому подключится.

   
 
 автор: DEM   (23.04.2008 в 21:34)   письмо автору
 
   для: Atheist   (23.04.2008 в 21:12)
 

Т.е. должен cheops к этому подключится.


Имено. Но тот конкурс делался с согласованием администрации и т.д. и т.п. А я этого ничего не делал... у меня просто бывает, что анхлынывает идея и я сразу же её анчинаю делать, а посокльку времени сейчас мало (сокро сдавать заказ), я быстро выкинул сюда... Поэтому врядли что-то получится...

   
 
 автор: mechanic   (23.04.2008 в 22:28)   письмо автору
 
   для: DEM   (23.04.2008 в 21:34)
 

да не, получится
я накатаю класс и выложу тут, и мож вместе обсудим, что можно было бы улучшить :)
писать уже начал)

   
 
 автор: Atheist   (23.04.2008 в 22:31)   письмо автору
 
   для: mechanic   (23.04.2008 в 22:28)
 

Ну тогда я не буду выкладывать.

   
 
 автор: cheops   (23.04.2008 в 23:36)   письмо автору
 
   для: Atheist   (23.04.2008 в 21:12)
 

>Т.е. должен cheops к этому подключится.
Мне кажется мы такое не однократно решали в форуме регулярных выражений - задача более инженерная - сложно будет однозначные критерии выбрать адекватной оценки, лучше что-то поменьше, но позаковыристее... Тем более в качестве приза мы ещё не высылали никому книги - интересно попробовать.

   
 
 автор: mechanic   (24.04.2008 в 10:06)   письмо автору
 
   для: cheops   (23.04.2008 в 23:36)
 

насчет позаковыристее:
сделать парсер, который будет РАСПОЗНАВАТЬ нужную инфу, т.е. не будет зависеть от HTML структуры поисковой выдачи, не будет юзать какую то одну регулярку, иначе если там у них верстка немного изменится, то регулярка не сработает и усе.. никаких результатов
если такое реализовать, можно будет натравливать данную тулзу на любой поисковик )

   
 
 автор: Atheist   (24.04.2008 в 10:32)   письмо автору
 
   для: mechanic   (24.04.2008 в 10:06)
 

То есть предлагаешь искуственный интеллект написать? С этим не могут справиться даже лучшие умы в мире. Так что я пас.

   
 
 автор: mechanic   (24.04.2008 в 14:19)   письмо автору
 
   для: Atheist   (24.04.2008 в 10:32)
 

не сомневался, что ответ будет про AI.. какой тут нафиг АИ, я ж не чатиться с этим скриптом собираюсь (хотя существуют боты, речь которых более менее похожа на человеческую)
а вот я не пас, я попробую,и на 75 процентов уверен что получится
цель: один класс для работы с выдачей гугла, яши и рамблера.. да и всех остальных
входные данные: адрес сервера, хэндлер (srch, search, search.php и т.д.), переменная для запроса (q, text, words...)

   
 
 автор: DEM   (24.04.2008 в 14:56)   письмо автору
 
   для: cheops   (23.04.2008 в 23:36)
 

В моём мозгу парсер - это что-то НУ ОЧЕНЬ заковырестое :) С регулярными у меня проблема, буду поднимать по ним уровень летом (так как решил летом заняться в плотную самообразованием), но пока это что-то загадочное (основы знаю, но написать что-то могу только со справочником).Поэтому и решил напистаь что-то такое :)


ЗЫ. а вот за книгу с автографом (как предлагали приз к 21 задаче) я бы с большим удовольствием подключился )))

   
 
 автор: Atheist   (24.04.2008 в 16:07)   письмо автору
 
   для: cheops   (23.04.2008 в 23:36)
 

> сложно будет однозначные критерии выбрать адекватной оценки, лучше что-то поменьше, но позаковыристее
А вот тут я соглашусь.

Вообще с точки зрения программирования данная задача неинтересна. То, что тут называют парсингом - это пара регулярных выражений для мощного механизма.
Еще для выпендрежа всё это загнать в ООП (именно для этого, потому что объективных плюсов нет, а минус - низкая скорость) и выдать сюда.
Вот вся и задача.

Если бы попросили написать реальный парсер чего-то (математических функций, каких-то запросов, кода и т.п.) без применения "крутых" функций - то другое дело.

   
 
 автор: mechanic   (24.04.2008 в 16:17)   письмо автору
 
   для: Atheist   (24.04.2008 в 16:07)
 

конечные автоматы чтоль?

   
 
 автор: Atheist   (24.04.2008 в 16:18)   письмо автору
 
   для: mechanic   (24.04.2008 в 16:17)
 

> конечные автоматы чтоль?
Я тебя не понял.

   
 
 автор: mechanic   (24.04.2008 в 16:21)   письмо автору
 
   для: Atheist   (24.04.2008 в 16:18)
 

разбор выражений типа 2 + (8 * 11) / 7 с помощью конечных автоматов, ты это имел ввиду?

   
 
 автор: Atheist   (24.04.2008 в 16:37)   письмо автору
 
   для: mechanic   (24.04.2008 в 16:21)
 

Извини, но в моей школе не проходят теорию автоматов. Поэтому я никак не мог иметь ввиду "это".

То, что написано в википедии для меня немного прояснило ситуацию. Да, по-моему, сама теория связана примерно с тем, о чём говорил.

Но я бы стал вкладывать в условие задачи эти теории. Если они тебе помогают - пожалуйста, применяй как хочешь и какие хочешь. Я себе и так четко представляю задачу и её решение.

   
 
 автор: mechanic   (23.04.2008 в 09:41)   письмо автору
 
   для: Atheist   (23.04.2008 в 00:12)
 

я, конечно, точно не знаю, но кажется тут не битвы программистов, а просто задания для проверки своих сил.. соответственно победителей нет
а те, кто справился с задачей, поднимаются на ступень выше как минимум в собственных глазах :)

   
 
 автор: DEM   (23.04.2008 в 16:05)   письмо автору
 
   для: mechanic   (23.04.2008 в 09:41)
 

Имено! Тут только проверить себя... В прнципе понимаю что заданиче довольно странное, но раз давно уже не появлялось новых, решил сделать...

   
 
 автор: KPETuH   (24.04.2008 в 13:07)   письмо автору
 
   для: DEM   (23.04.2008 в 16:05)
 

да нормальное задание для начинающих и интересующихся самое-то, а то правда что давно уже никаких задач и заданий не появлялось :).

как-то год назад примерно делал такой скриптец только не для гугля, а для яндекса...

а самый лучший приз для начинающего программиста помоему похвала и оценка более опытных товарищей...

   
Rambler's Top100
вверх

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