|
|
|
| Давно тут уже не появлялось заданий, потому решил написать такую фот... Хотя конечно врядли это задание будет довольно интересным (раньше никогда не писал ничего подобного), но надеюсь хоть кого-то захватит решение этого задания :) Сам учавствовать не буду, так как у меня будет всё равно преимущество, хоть я никогда парсеров и не писал :( Но может просто напишу, как бы я это решил :)
----------------------------
Описание:
Пользователь вводит данные в текстовое поле, скрипт отправляет запрос 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 - номер этой ссылки
------------------------
|
Желаю всем, кто захочет принять участие, удачи!
ЗЫ. просьба всем, кто будет учавствовать, написать тут... | |
|
|
|
|
|
|
|
для: DEM
(22.04.2008 в 22:36)
| | А что получает победитель? | |
|
|
|
|
|
|
|
для: Atheist
(23.04.2008 в 00:12)
| | То же самое, что и за остальные задачи - ничего :) Задачие - это способ проверить себя в знаниях РНР, а не показать всем что все отстойники, а ты один молодец. | |
|
|
|
|
|
|
|
для: DEM
(23.04.2008 в 08:36)
| | Тогда это несерьезно. | |
|
|
|
|
|
|
|
для: Atheist
(23.04.2008 в 09:20)
| | кому как
я бы легко написал такую хрень, + надо еще добавить листалку по страницам
полученный на выходе класс будет хорошей основой поиска по сайту, который легко встроится в дизайн сайта.. можно даже на аяксе получать результаты и листать.. | |
|
|
|
|
|
|
|
для: mechanic
(23.04.2008 в 09:36)
| | Посоревнуемсо? | |
|
|
|
|
|
|
|
для: Atheist
(23.04.2008 в 09:40)
| | каковы условия? )
просто "кто первый"? | |
|
|
|
|
|
|
|
для: mechanic
(23.04.2008 в 09:41)
| | Тут, по-моему, админы объявляют о начале. Потом в течение нескольких дней отправляется код через какую-то форму. В опр. день все коды становятся видимыми. Почитай другие темы... | |
|
|
|
|
|
|
|
для: Atheist
(23.04.2008 в 09:47)
| | чет не нашел правил.. можно ссылку, если таковые вообще тут прописаны?
а так я согласен на задание, мне такой класс пригодится ) | |
|
|
|
|
|
|
|
для: 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 к этому подключится. | |
|
|
|
|
|
|
|
для: Atheist
(23.04.2008 в 21:12)
| |
Т.е. должен cheops к этому подключится.
|
Имено. Но тот конкурс делался с согласованием администрации и т.д. и т.п. А я этого ничего не делал... у меня просто бывает, что анхлынывает идея и я сразу же её анчинаю делать, а посокльку времени сейчас мало (сокро сдавать заказ), я быстро выкинул сюда... Поэтому врядли что-то получится... | |
|
|
|
|
|
|
|
для: DEM
(23.04.2008 в 21:34)
| | да не, получится
я накатаю класс и выложу тут, и мож вместе обсудим, что можно было бы улучшить :)
писать уже начал) | |
|
|
|
|
|
|
|
для: mechanic
(23.04.2008 в 22:28)
| | Ну тогда я не буду выкладывать. | |
|
|
|
|
|
|
|
для: Atheist
(23.04.2008 в 21:12)
| | >Т.е. должен cheops к этому подключится.
Мне кажется мы такое не однократно решали в форуме регулярных выражений - задача более инженерная - сложно будет однозначные критерии выбрать адекватной оценки, лучше что-то поменьше, но позаковыристее... Тем более в качестве приза мы ещё не высылали никому книги - интересно попробовать. | |
|
|
|
|
|
|
|
для: cheops
(23.04.2008 в 23:36)
| | насчет позаковыристее:
сделать парсер, который будет РАСПОЗНАВАТЬ нужную инфу, т.е. не будет зависеть от HTML структуры поисковой выдачи, не будет юзать какую то одну регулярку, иначе если там у них верстка немного изменится, то регулярка не сработает и усе.. никаких результатов
если такое реализовать, можно будет натравливать данную тулзу на любой поисковик ) | |
|
|
|
|
|
|
|
для: mechanic
(24.04.2008 в 10:06)
| | То есть предлагаешь искуственный интеллект написать? С этим не могут справиться даже лучшие умы в мире. Так что я пас. | |
|
|
|
|
|
|
|
для: Atheist
(24.04.2008 в 10:32)
| | не сомневался, что ответ будет про AI.. какой тут нафиг АИ, я ж не чатиться с этим скриптом собираюсь (хотя существуют боты, речь которых более менее похожа на человеческую)
а вот я не пас, я попробую,и на 75 процентов уверен что получится
цель: один класс для работы с выдачей гугла, яши и рамблера.. да и всех остальных
входные данные: адрес сервера, хэндлер (srch, search, search.php и т.д.), переменная для запроса (q, text, words...) | |
|
|
|
|
|
|
|
для: cheops
(23.04.2008 в 23:36)
| | В моём мозгу парсер - это что-то НУ ОЧЕНЬ заковырестое :) С регулярными у меня проблема, буду поднимать по ним уровень летом (так как решил летом заняться в плотную самообразованием), но пока это что-то загадочное (основы знаю, но написать что-то могу только со справочником).Поэтому и решил напистаь что-то такое :)
ЗЫ. а вот за книгу с автографом (как предлагали приз к 21 задаче) я бы с большим удовольствием подключился ))) | |
|
|
|
|
|
|
|
для: cheops
(23.04.2008 в 23:36)
| | > сложно будет однозначные критерии выбрать адекватной оценки, лучше что-то поменьше, но позаковыристее
А вот тут я соглашусь.
Вообще с точки зрения программирования данная задача неинтересна. То, что тут называют парсингом - это пара регулярных выражений для мощного механизма.
Еще для выпендрежа всё это загнать в ООП (именно для этого, потому что объективных плюсов нет, а минус - низкая скорость) и выдать сюда.
Вот вся и задача.
Если бы попросили написать реальный парсер чего-то (математических функций, каких-то запросов, кода и т.п.) без применения "крутых" функций - то другое дело. | |
|
|
|
|
|
|
|
для: Atheist
(24.04.2008 в 16:07)
| | конечные автоматы чтоль? | |
|
|
|
|
|
|
|
для: mechanic
(24.04.2008 в 16:17)
| | > конечные автоматы чтоль?
Я тебя не понял. | |
|
|
|
|
|
|
|
для: Atheist
(24.04.2008 в 16:18)
| | разбор выражений типа 2 + (8 * 11) / 7 с помощью конечных автоматов, ты это имел ввиду? | |
|
|
|
|
|
|
|
для: mechanic
(24.04.2008 в 16:21)
| | Извини, но в моей школе не проходят теорию автоматов. Поэтому я никак не мог иметь ввиду "это".
То, что написано в википедии для меня немного прояснило ситуацию. Да, по-моему, сама теория связана примерно с тем, о чём говорил.
Но я бы стал вкладывать в условие задачи эти теории. Если они тебе помогают - пожалуйста, применяй как хочешь и какие хочешь. Я себе и так четко представляю задачу и её решение. | |
|
|
|
|
|
|
|
для: Atheist
(23.04.2008 в 00:12)
| | я, конечно, точно не знаю, но кажется тут не битвы программистов, а просто задания для проверки своих сил.. соответственно победителей нет
а те, кто справился с задачей, поднимаются на ступень выше как минимум в собственных глазах :) | |
|
|
|
|
|
|
|
для: mechanic
(23.04.2008 в 09:41)
| | Имено! Тут только проверить себя... В прнципе понимаю что заданиче довольно странное, но раз давно уже не появлялось новых, решил сделать... | |
|
|
|
|
|
|
|
для: DEM
(23.04.2008 в 16:05)
| | да нормальное задание для начинающих и интересующихся самое-то, а то правда что давно уже никаких задач и заданий не появлялось :).
как-то год назад примерно делал такой скриптец только не для гугля, а для яндекса...
а самый лучший приз для начинающего программиста помоему похвала и оценка более опытных товарищей... | |
|
|
|