Лень – бесспорный двигатель прогресса. Заленившись в очередной раз открывать десяток сайтов для поиска и сравнения цен на очередную настолку я понял, что пора что-то менять. Точнее – автоматизировать.
Сразу скажу – путь был долгий и до сих пор не завершился. Но тем не менее...
Итак, идея: организовать поиск настолок по необходимым онлайн-магазинам в один клик.
Первое, что пришло в голову – конечно гугл. Но гугление результатов не принесло. Странно, ведь идея вроде бы довольно очевидная.
Второе, что пришло в голову – гугл=). Точнее его возможность в организации пользовательского поиска, а именно – поиск только по определенным сайтам.
Поэкспериментировав какое-то время с различными возможностями этот вариант отпал, так как нужно было воспользоваться не поиском по определенным сайтам, а воспользоваться поиском самих этих сайтов.
Третье, что пришло в голову (вы удивитесь) – гугл. Точнее – гугл хром. А точнее – его поисковые системы. Я знал, что у него есть возможность создавать и добавлять свои собственные поиски (более того, он это делает автоматически, как только ты воспользуешься поиском любого сайта), но мне хотелось посылать один запрос на все поисковые системы сразу, а не по одной. Но, к сожалению, ни настройки ни расширения в этом вопросе мне не помогли. (Дабы не разжигать холиваров, отмечу, что не только хром, а все современные браузеры умеют создавать собственные поиски).
Итак, готового решения нету. Что ж, писать самому? Ну, с учетом моего программерского скила – задача явно невыполнимая. Ладно, попробуем что-нибудь изобразить...
Да, господа, это правда – я не программер. Хтмл иногда в виде тегов видел, про пхп что-то когда-то читал, но не более того. А уж какие-нибудь СИ++… В общем, не важно, поиск же никто не отменял.
Итак, первым моим блином стала страничка, делающая почти то, что мне нужно. А именно – пишешь название, нажимаешь кнопку – и она открывает сразу 8 окон разных игромагазинов с результатами поиска.
Да, это был взятый где то простенький ява-скрип и … все. А search-url я выдергивал как раз при помощи управления поисковыми системами в хроме. У меня даже не получилось добавить поисковый запрос в середину урла, только в конец, и поэтому три странички не работали. Но начало быол положено.
8 отдельных страниц – это тоже не очень удобно. Как бы это все замутить на одной.
Дикая идея использовать фреймы умерла почти в самом зародыше (вы никогда не видели страничку с восемью горизонтальными фреймами? Это нечто)). Стало понятно, что хтмл с явой тут вряд ли помогут, придется все же понимать (хоть немного) что-нибудь посерьезнее.
Выбор пал на PHP. Не знаю, почему. Пал и все)
Сначала я долго мучился, получая странички через file_get_contents и пытаясь их как-то разобрать через всякие substr. Потом на смену file_get_contents пришел curl. Спустя полдня до меня дошло, что то, что я пытаюсь сотворить называется вовсе не «метапоисковик» как мне казалось, а вовсе даже хтмл-парсинг.
И сразу стало проще {гуглить}. А после того, как моему взору предстала библиотека simple html dom все стало вообще чудесно. Почти.
В общем, итогом двухдневного погружения в мир программирования стал такой корявенький скрипт. На результаты можно полюбоваться тут.
Скрипт пока ищет только по двум сайтам, а выдача результата явно оставляет желать лучшего. Но он работает!)
И тут мне пришла в голову вообще идея-идея!
Господа тесеровцы, ведь среди вас полно программистов, я знаю!) И, думаю, вам не понадобится много времени, чтобы довести скрипт до ума (а то и кошерно развить идею).
Хотелки:
В идеале я вижу это так
– чекбоксы, что бы выбрать, в каких именно магазинах производить поиск.
– выдача в виде единообразной табличке (возможно, даже с картинками), с переходом на заказ по клику и возможностью сортировки.
– для сравнения можно добавить поиск и по русским магазинам (хотя цену доставки «оттуда» все равно посчитать будет нельзя, поэтому сравнение будет довольно условным).
– ну и постепенное пополнение базы магазинов.
Задача то вроде не сложная, цель – благородная. =)
зы к сожалению, не нашел, как здесь вставлять в текст статьи хтмл или пхп-код. поэтому вставил картниками. извините)
Переношу сообщения о новостях и т.п. вот сюда http://nastolkus.com/poisk-po-onlajn-magazinam/
Ссылка на блоге в самом верху слева - найти легко.
ибо этот тред уже не контролируемый :) Куча замечаний в разных местах в разное время.
Появилось немного времени, сейчас займусь развитием
там комментарии выключены=)
а по адресу nastolkus.kermid.com 500 ошибка
Уже включены, а ошибка была потому, что как раз сейчас залил обновление :)
а вот все равно страничка не открывается.
а disqus сожрал уже второй комментарий(
Ну не знаю - у меня всё открывается. И комментарии пишутся... Дискус может и подглючивает - разберусь сегодня что там как.
А по поводу страницы... Сервера-то не у меня дома. Мало вероятно, чтобы у меня всегда открывалось с нескольких разных машин в разных сетях, а у кого-то всегда нет :) Даже с анонимайзера проверил (http://1.hidemyass.com/ip-7/encoded/Oi8vbmFzdG9sa3VzLmtlcm1pZC5jb20v&f=norefer). Может ссыку неверную набираешь?
500 ошибка специально не ловится пока, чтобы отловить ошибки. В логах я не вижу твоих попыток.
Попробуй зайти вот сюда http://nastolkus.kermid.com/dsfgsdffffff
эта ошибка только что словилась и я вижу её в логе. Ты увидишь 500 ошибку, но я смогу посмотреть что ты пытался.
Добавил тебя, кстати, в About
http://nastolkus.kermid.com/Home/About
спасибо)
глюк с неоткрытием локализовал - проблема осталась на одной машине (моей, рабочей, что обидно)
по дискусу - может, он режет комменты, если писать несуществующий емейл?
По поводу дискаса - не знаю Есть вариант ещё один, что сообщения есть. Просто в строке "Discussion Community My Disqus" (сразу над комментариями) в пункте Discussion надо выбрать не Best, a New. Тогда показываться будет.
Напиши что-нибудь туда, посмотрим
Жду всё белоруские магазины. Пользовался бы))
Первым попробовал igra.by. В беларуси очень сильные веб программисты (без иронии), но иногда они перебарщивают... Вот кому могло придти в голову хешировать поисковый запрос? Во большинстве магазинах поиск выглядит так, например:
http://igroved.ru/search/?event=wordsearch&word=клаустрофобия
а в играй бай та же строка выглядит вот так:
http://igraj.by/search/9615cb7cbf87f234194fe0c3798ce269/
зачем??? :)
Мне откровенно лень искать алгоритм хеширования. Если дадите другие бел. магазины - постараюсь добавить.
Я уже говорил на эту тему с директором. У него вообще интересная тема на сайте - там игры прописываются как доступные, причём всегда, ибо ввести другой раздел, то они не будут пробиватсья по поиску. С поиском там явно что-то намешано
У них сайт можно бесконечно переделывать:) там очень неудобно то, что игры разбиты по производителям. Простому человеку эти производители до лампочки:)
Igraland.by - цены те же, что и в играйбае, потому достаточно игралэнда:) на играйбае только скидки были летом больше, что радовало
Ну и nastolki.by - есть такой. Других не знаю больше.
Ок, сегодня постараюсь добавить упомянутые. Если там без фокусов, то сегодня будет.
igraj.by - "шедевр". выше описал почему. Такого я ещё вообще нигде не видел.
igraland.by в поиске не даёт цену. Т.е. найдёт только если точно указать конкретную игру. Смысла ноль
www.nastolki.by всё передаёт get, а именно слово поиска постом (post) -
мне сейчас точно лень ковыряться с формами и т.п.
Лишний раз убедился что у беларусов что-то не так в настольном мире :)
Ни один из приведённых сайтов из беларуси не делает простое простым. Всё надо как-то извернуться :) Нафига усложнять простые вещи - непонятно. "Просто искать - нельзя. Надо посношаться" Хоть ты диссертацию пиши :)
поправил сортировку - вроде должно быть нормально. Добавил для игроведа "наличие". Кроме того, если навести мышь на слово "есть" или "нет" - покажет хинтом детали (где есть, а где нет)
временно убрал bb ибо периодически глючит. Убил часть времени, чтобы узнать, что там для посетителей и для "ботов" выдаются разные страницы :) Чуть с ума не съехал :)
Подправлю, верну обратно.
Тестируйте, а я пока причешу остальное.
http://nastolkus.kermid.com
Пользуюсь Firefox, табличка результатов поиска, съехала вправо, вылезает на бордюрную серую полосу. Что бы увидеть цены, надо прокручивать. Проверял в Opera, там всё нормально.
Ок, проверю, спасибо
добавил gaga.ru и nastolki.by. Правда последняя будет не совсем корректно работать. Дело в том, что если игра находится и она одна - сайт выдаёт не страницу списка, которую я анализирую, а страницу конкретно этой игры. Т.е. клаустрофобия одна - в моём поиске её не покажет. Надо набирать "клау" - тогда выведется список игр и я могу его анализировать.
В общем я сделал пост запросы, добавлю ещё магазинов, но уникальная "логика" точно не будет учитываться. Если навести мышь на магазин - хинтом покажет его "особенности"
хинт на гаге не совсем корректно отображается.
сортировка вроде работает корректно (глюков найти не удалось).
думаю, нужно разделить чекбоксы магазинов на несколько групп - например русские, белорусские, американские и тд.
ну и не знаю, глюк или фича (хотя это скорее вопросы к сайтам магазинов) - игровед показывает цену для "обычных людей", гага - цену после регистрации (т.е. уже со скидкой). какую цену правильнее выводить - я пока не знаю. но думаю, это как минимум заслуживает упоминания в каком-либо виде.
минимаркет заработал, но выдает опят не все
dice - 22 из 286
zombies - 16 из 143
catan - 23 из 37
ghost - вообще подвешивает скрипт
плюс на zombies в цену сыпет тегами
Про разделение на группы думал, сделал, надо только обновить - вечером будет.
- хинт проверю.
- а вот про цену... я вытаскивал, вроде цену по которой можно купить. Т.е. цена после регистрации это логично ибо если будешь покупать, то логично и зарегистрироваться. Про детали каждого магазина будет в хинте (пока по крайней мере)
- минимаркет проверю, спасибо
если есть ещё магазины, которые тут не упомянуты - бросайте сюда. Хотя, конечно, уже неудобно стало выискивать. Слали бы сразу мне на мыло - ничего бы не потерялось. настолкус ат настолкус ком проще не бывает :)
Просьба ко всем, если замечаете глюки - бросайте инфо в каких магазинах и с какой строкой поиска - мне быстрее будет найти проблему. Ибо времени на этот проект мало и я делаю его урывками.
Спасибо за тестинг, думаю со временем может получиться что-то удобное для всех
идея прекрасная, сам думал об этом многократно, но за реализацию не брался.
здорово если получится это сделать учитывая совершенно разную структуру сайтов с играми.
респект!
Знаешь, какой актуальной опции нет ни в одном из таких поисковиков? Стоимости доставки. Если сможешь как-то сделать будет вообще жесть.
Но работа очень полезная, спасибо.
афаик, стоимость доставки считается в каждом отдельном случае индивидуально, после оформления заказа, поэтому эта опция принципиально не реализуема (разве что завести аккаунт на каждом из магазинов и оформлять покупку с доставкой после каждого поиска... нет, имхо, совсем не реально)
Стоимость доставки зависит от многих факторов - страна отправителя, страна получателя, вес посылки и т.п.
Могу максимум дать примерную стоимость, иначе надо писать уже не "сайтик" для поиска, а целую систему.
Я подумаю
что-то идет не так =(
поиск по bb выдает только часть результатов
(запрос ghost 3 рез-та вместо 4х)
(запрос zombies 14 из 27)
(запрос dice 8 из 85)
сортировка не всегда работает корректно
(поиск на bb, munchkin, сортировка по цене - 9, 6, 7, 3, 15; обратная сортировка - 12, 15.96, 15.98)
bb по прежнему не работает, если в запросе есть пробел
поиск по mm завешивает скрип
еще из магазинов хотелось бы увидеть gaga.ru, coolstuffinc.com и timewellspent.org (а в перспективе и amazon.de)
ну и чтобы столбец "наличие" таки начал работу, а то без него совсем печально
Я тоже обратил внимание что поиск по BB отображает не все
Да, я в курсе - пока только доделал, чтобы всё заработало как мне хочется, ошибки не исправлял. В воскресенье присяду и поправлю.
все пожелания зафиксированы и будут реализованы. К сожалению не всё получится, кажется с гагой есть какие-то проблемы, ен помню уже. В общем буду потихоньку реализовывать и всё будет хорошо. Скоро сделаю отдельный пост где опишу планы, сроки и т.п.