Форум → Программирование → Пыхнуть хотите? → Battles → Паук (открывающий сезон)
Паук (открывающий сезон)
Страницы: ← Предыдущая страница • Следующая страница →
-
Сен. 24, 2007, 2:09 п.п., спустя 19 секунд
[size=12]И пришел пауг[/size]
Задача: проиндексировать содержимое набора страниц.
Испытание состоит из нескольких частей.
Смысл в том, что люди, уровня несколько выше начального, в состоянии выполнить все эти части.
Другое дело, что выполнить каждую из них, можно совершенно на различном уровне. Кто сделает круче, тот, соответственно, и круче :)
Так же конечные результаты оцениваются, не как "выполнил/невыполнил". Можно проиндексировать не все страницы, а только часть. Чем больше часть, тем лучше.
Так же учитывается скорость и удобоваримость кода.
Каждый бойцу выделяется каталог. Нужно проиндексировать, как можно большее количество страниц в этом каталоге, начиная с корневой.
Структура страницы
На странице может быть любое мясо. Из этого мяса нам нужно:
1. Слой (<div>) с идентификатором "content". Его содержимое и есть, то, что нужно проиндексировать.
2. Ссылки. Ссылки могут быть разные. Абсолютные, относительные, зеленые и красные. Могут вести внутрь каталога, на другие сайты, на другие каталоги текущего сайта. Нас интересуют только ссылки на наш каталог. Эти страницы нужно проиндексировать. Так же в ссылках могут быть параметры после "?", якоря после "#" и т.п.
3. У ссылки может быть rel="nofollow". Такие страницы индексировать лучше не нужно.
Желательно, не забыть про возможность наличия тега <BASE>
Переадресация
Часть страниц может содержать переадресацию. Либо с помощью HTTP 302, либо через <meta-refresh>. Желательно при этом — перейти по рефрешу.
Если сложно, можно забить.
Куки
На страницах могут ставится куки. Некоторые страницы будут доступны только при правильной комбинации кук.
Так что желательно куки обрабатывать.
Сложно — можно забить. Часть страниц не проиндексится.
На выходе
На выходе нужен файл со строчками вида:
<адрес страницы>|<содержимое нужного дива>
Средства
В зависимости от квалификации можно страницы грузить по различному.
file_get_contents() - ну это вообще неинтересно
curl - для более продвинутых
сокеты - чтобы показать наибольшую крутость :). Наибольшая из наибольшей крутость — использовать HTTP/1.1 с учетом всех "100 Continue", чункед-кодирования и т.п.
Скорость
Страниц очень много. Просто так, последовательно грузить каждую - долго.
Желательно сделать это всё параллельно.
Есть мультикурл, но он просто так не позволяет добавлять новые задания в процессе выполнения, обрабатывать уже завершенные, до завершения всего блока.
Самая интересная и высокооцениваемая часть.
Само задание, конечно, чепуховина. Но если хорошо проработать решение, его можно использовать в дальнейшем для много более полезных вещей. -
Сен. 24, 2007, 2:48 п.п., спустя 39 минут 54 секунды
О_о
столько новых слов узнаешь из одного только задания…все умрут, а я изумруд -
-
Сен. 24, 2007, 4:14 п.п., спустя 1 минуту 25 секунд
Ну чо? Кто какой путь выбрал?
я, например, выбрал концепцию, "последний момент — самый ацкий" :)все умрут, а я изумруд -
-
-
Сен. 24, 2007, 4:47 п.п., спустя 24 минуты 45 секунд
А я пожалуй сниму свою кандидатуру :)
Уж больно круто тут всё. Думал осилю, но если и сделаю то самый ужасным способом из всех существующих )))from TRIAL with LOVE -
Сен. 24, 2007, 4:53 п.п., спустя 6 минут 3 секунды
А я пожалуй сниму свою кандидатуру :)
Уж больно круто тут всё. Думал осилю, но если и сделаю то самый ужасным способом из всех существующих )))
какая разница, не на работу же тебя берут, триал харош! твоя отмаза не прокатила, назад дороги нет))https://smappi.org/ - платформа по созданию API на все случаи жизни -
Сен. 24, 2007, 4:56 п.п., спустя 2 минуты 22 секунды
Самый ужасный способ из существующих — отмазаться, когда поздно :) -
Сен. 24, 2007, 4:57 п.п., спустя 1 минуту 40 секунд
самое главное,какой срок даецца(ну чтобы не стыдно было,а то буду тянуть до последнего=)) -
Сен. 24, 2007, 5:01 п.п., спустя 3 минуты 21 секунду
я думаю, недели всем хватит?все умрут, а я изумруд -
-
-
Сен. 24, 2007, 5:38 п.п., спустя 11 минут 47 секунд
ты наверно читал,как программисты дом строят=)
я не читал)) дай ссылко))https://smappi.org/ - платформа по созданию API на все случаи жизни -
Сен. 24, 2007, 6:05 п.п., спустя 26 минут 24 секунды
Офигенный рассказ )))
2 раза читал, 2 раза рыдал )))
Ну ладно, попробую. Но делать буду всё на get_file_content().from TRIAL with LOVE
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!