|
|
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
helliumЯ бы сделал по-простому: данные складываются сразу в mysql-базу, на эту же базу смотрит веб-интерфейс (ну, или делается выгрузка в отдельную базу, адаптированную специально для веба). Нормализация данных - регекспы, словари, подгружаемые из базы. Агрегатор - sql + немного скриптовой логики (на чистом sql сделать можно, но будет очень громоздко). Чем использование rdf-хранилища + специализированных api лучше этой схемы? Я б так сказал, всем, кроме затрат на обучение разработчика. Одно дело самопальничать словари в какой-то базе неизвестной полноты и актуальности, другое --- брать готовые из SWEO LOD. Одно дело писать скрипты, другое --- не писать в 99% случаев, просто использовать язык, более подходящий для ad hoc запросов (зато в оставшемся 1% использовать хоть ризонер). Одно дело выковыривать данные с нуля написанной самопальной выковыривалкой, другое --- взять нахаляву готовый RDF Sponger и склонировать один из десятков готовых "картриджей"-выковыривателей. Тем более если речь про туризм, когда нужные названия могут запросто оказаться на незнакомом языке, но при этом dbpedia и geonames уже хранят если не русские то уж точно английские эквиваленты. Вы уверены, что у вас не будет трудностей с китаизацией и арабизацией _одновременно_ ? "По сумме очков", BBC даже свой собственный архив каталогизирует в RDF, это при том что там "поставщик информации" всего один, всегда "на связи" и всячески помогает архивариусу, а не гадит. Томас Рейтерс тоже не отстаёт. А уж эти ребята знают толк в сборе информации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 14:42 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
iv_an_ru, iv_an_ru Я б так сказал, всем, кроме затрат на обучение разработчика. Одно дело самопальничать словари в какой-то базе неизвестной полноты и актуальности, другое --- брать готовые из SWEO LOD. 1. вряд ли в SWEO LOD есть полные и актуальные словари на все случаи жизни. Ну или хотя бы данные для более-менее полной модели предметной области по туризму. 2. никто не мешает взять готовые словари, сконвертировать в нужную субд и пользоваться. Пока преимущества не вижу. iv_an_ru Одно дело писать скрипты, другое --- не писать в 99% случаев, просто использовать язык, более подходящий для ad hoc запросов (зато в оставшемся 1% использовать хоть ризонер). Про какой именно "более подходящий язык" идет речь, с какими именно скриптами он сравнивается, и в контексте каких задач? iv_an_ru Одно дело выковыривать данные с нуля написанной самопальной выковыривалкой, другое --- взять нахаляву готовый RDF Sponger и склонировать один из десятков готовых "картриджей"-выковыривателей. Тем более если речь про туризм, когда нужные названия могут запросто оказаться на незнакомом языке, но при этом dbpedia и geonames уже хранят если не русские то уж точно английские эквиваленты. Вы уверены, что у вас не будет трудностей с китаизацией и арабизацией _одновременно_ ? Давайте по шагам. 1. Сканеры сайтов ("скачать все интересующие страницы с заданного сайта"). В perl, python, php куча готовых решений для этого, со всеми возможными свистелками и финтифлюшками. Что-то более эффективное, чем уже придуманные решения, изобрести очень трудно, да наверное и незачем. В сложных случаях (картинки, js, антисканеры, капчи) в любом случае с каждым сайтом придется работать индивидуально. Скриптовые языки здесь более предпочтительны - проще и дешевле найти разработчиков. 2. Адаптеры ("разобрать html-страницу и получить на выходе структурированные данные"). например из Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. К сожалению, я не знаю, что есть RDF Sponger'ы и какие у них возможности. Они могут автоматизированно решить эту задачу, без задания человеком правил распознавания для каждого типа страниц? Если нет, то в чем тогда преимущество перед скриптовыми "выдиральщиками" информации? 3. Нормализация данных. Предметная область у ТС небольшая и сущностей не то чтобы особо много. Верю, что rdf-ориентированные тулзы справятся, но точно так же и скриптовые языки справятся, с помощью регекспов и словарей. 4. Агрегация данных ("определить, что эта группа объектов на самом деле одно и то же и оставить в выходных данных только одну копию объекта") Собственно, все упирается в задание правил "одинаковости" объектов и производительность обработки. - правила все равно придется задавать вручную, под заданную предметную область, универсальный "сравниватель" произвольных объектов реализовать невозможно. - про производительность RDF-хранилищ по сравнению с реляционными базами, к сожалению, ничего сказать не могу, не сравнивал. Однако, есть мнение, что особая производительность и не потребуется. Во-первых, объем данных неизвестен, во-вторых, даже если он большой, можно разбить данные на независимые блоки и обсчитывать отдельно, на разных железках. iv_an_ru "По сумме очков", BBC даже свой собственный архив каталогизирует в RDF, это при том что там "поставщик информации" всего один, всегда "на связи" и всячески помогает архивариусу, а не гадит. Томас Рейтерс тоже не отстаёт. А уж эти ребята знают толк в сборе информации. Насколько я понимаю, у топикстартера стоит цель не создать второй архив BBC, а с минимальными финансовыми затратами тырить информацию у конкурентов и показывать ее в человекочитаемом виде на своем сайте до тех пор, пока этот сайт не раскрутится Да, и поставщиков будет много, и вряд ли они будут гореть желанием помочь архивариусу P.S. Было бы интересно услышать, какие компоненты/api вы бы использовали для при реализации подобной системы. Особо интересует выбор rdf-хранилища, api для адаптеров и агрегации информации. P.P.S. Я правильно понимаю, что rdf-хранилища используются только для обработки/хранения информации, а для выдачи в веб все-таки используются более легковесные базы данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 20:50 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
hellium, Для разовой программы для себя лично лучше использовать не самую подходящую тулзу, а самую знакомую. Для долгосрочной затеи "Data as a Service" надо уже садиться и тщательно считать деньги по обеим вариантам, в т.ч. раздумывая, сколько будет стоить переделка, когда через пару лет клиенты начнут требовать выхлоп именно в виде RDF. 1. Сканеры сайтов ("скачать все интересующие страницы с заданного сайта"). В perl, python, php куча готовых решений для этого, со всеми возможными свистелками и финтифлюшками.В любой миддлварной СУБД для этого тоже есть готовые функции. С той только разницей, что не будет проблем написать запрос, который будет мимоходом подкачивать недостающие данные. Для выдирания известных прайсов по списку это излишне, но если приспичит что посерьёзней, то может быть и незаменимым. Весь ебай или амазон или travelocity не перекачаешь, а вот выкусить "на лету" пару строго необходимых страничек --- совсем другое дело. 2. Адаптеры ("разобрать html-страницу и получить на выходе структурированные данные").Если в СУБД есть стойкий к ошибкам вёрстки HTML-парсер и XSLT с возможностью встраивания как SQL так и SPARQL, то код будет и нагляднее любых регэкспов, и устойчивее к мелким правкам вёрстки и уж точно не длиннее. автор3. Нормализация данных.Зависит от аппетитов ТС, цены начального наполнения и скорости изменения словарей. Хороший многоязыковой словарь может стоить ой-ой-ой, разумно как минимум для начала убедиться, что готового в природе не существует. автор4. Агрегация данных ("определить, что эта группа объектов на самом деле одно и то же и оставить в выходных данных только одну копию объекта")С этим, как и с любым другим логическим выводом, в RDF разбираться намного проще, чем в классических базах. owl:sameAs для интеграции "разношёрстных" данных _очень_ удобен. Вы правы, что "правила все равно придется задавать вручную, под заданную предметную область", вопрос в цене разработки, если правила сложны. про производительность RDF-хранилищ по сравнению с реляционными базами, к сожалению, ничего сказать не могу, не сравнивал.С этим всё в порядке, тем более если пузомеряться с LAMP. P.S. Было бы интересно услышать, какие компоненты/api вы бы использовали для при реализации подобной системы.Поскольку система строится с нуля, нет никаких старых корпоративных баз, (которые должны жужжать в неизменном виде но при этом разделять данные с новым приложением), то взял бы халявную Virtuoso Open Source. RDBMS с нормальным SQL-ем + хорошая, не для галочки, поддержка RDF + hosted Perl/PHP/Python/Java/C + ODBC/UDBC/IODBC/JDBC/ADO.Net + XPATH/XQuery/XSLT + HTTP/DAV/SOAP... и всё в одном экзешнике. Если бы стояла ещё и задача интеграции со старым "зоопарком", то я б тут разливался соловьём про Virtuoso Universal Server, в котором кроме всего уже перечесленного есть виртуальная схема, поддержка кластеризации и ещё по мелочи, и поэтому он продаётся по цене примерно в половину от оракловских лицензий (а мне с этих лицензий зарплата образуется ;) Но поскольку ни такой интеграцией ни кластерами тут и не пахнет, я могу с чистой совестью советовать сэкономить деньги и брать халяву :) И даже если решить, что эта задача "не вырастет" и ограничиться LAMP-ом, то все равно вечерами разбираться с RDF/SPARQL/OWL. Тот, кто сейчас наберётся опыта с этим, потом окажется в таком же выигрышном положении, в каком 15 лет назад были люди с реальным опытом работы с HTTP/HTML. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 21:42 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
iv_an_ru, iv_an_ruДля разовой программы для себя лично лучше использовать не самую подходящую тулзу, а самую знакомую. Для долгосрочной затеи "Data as a Service" надо уже садиться и тщательно считать деньги по обеим вариантам, в т.ч. раздумывая, сколько будет стоить переделка, когда через пару лет клиенты начнут требовать выхлоп именно в виде RDF. наверное, экспорт реляционных в RDF это не такая уж и сложная задача. а подсчитывать нужно еще и стоимость и распространенность специалистов, которые будут работать с rdf-хранилищем. iv_an_ru1. Сканеры сайтов ("скачать все интересующие страницы с заданного сайта"). В perl, python, php куча готовых решений для этого, со всеми возможными свистелками и финтифлюшками.В любой миддлварной СУБД для этого тоже есть готовые функции. С той только разницей, что не будет проблем написать запрос, который будет мимоходом подкачивать недостающие данные. Для выдирания известных прайсов по списку это излишне, но если приспичит что посерьёзней, то может быть и незаменимым. Весь ебай или амазон или travelocity не перекачаешь, а вот выкусить "на лету" пару строго необходимых страничек --- совсем другое дело. разницы нет, в скриптовых языках тоже никто не мешает задавать критерии отбора страниц, которые надо скачать/обновить. iv_an_ru 2. Адаптеры ("разобрать html-страницу и получить на выходе структурированные данные").Если в СУБД есть стойкий к ошибкам вёрстки HTML-парсер и XSLT с возможностью встраивания как SQL так и SPARQL, то код будет и нагляднее любых регэкспов, и устойчивее к мелким правкам вёрстки и уж точно не длиннее. в perl/python, если библиотека парсера по каким-то причинам не устраивает, можно его спокойно выкинуть и взять более подходящий. А встроенный в субд html-парсер, насколько я понимаю, заменить сложнее iv_an_ru автор3. Нормализация данных.Зависит от аппетитов ТС, цены начального наполнения и скорости изменения словарей. Хороший многоязыковой словарь может стоить ой-ой-ой, разумно как минимум для начала убедиться, что готового в природе не существует. ну это от платформы не зависит iv_an_ru автор4. Агрегация данных ("определить, что эта группа объектов на самом деле одно и то же и оставить в выходных данных только одну копию объекта")С этим, как и с любым другим логическим выводом, в RDF разбираться намного проще, чем в классических базах. owl:sameAs для интеграции "разношёрстных" данных _очень_ удобен. Пока ничего не могу сказать, надо посмотреть/попробовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2010, 22:43 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
helliumiv_an_ruчто не будет проблем написать запрос, который будет мимоходом подкачивать недостающие данные. Для выдирания известных прайсов по списку это излишне, но если приспичит что посерьёзней, то может быть и незаменимым. Весь ебай или амазон или travelocity не перекачаешь, а вот выкусить "на лету" пару строго необходимых страничек --- совсем другое дело. разницы нет, в скриптовых языках тоже никто не мешает задавать критерии отбора страниц, которые надо скачать/обновить.Разница есть, с "отдельно стоящими" скриптовыми языками можно сделать SQL запрос, на основании возвращённых значений принять решение и выкачать какие-то странички, распарсить их, долить данные в базу, сделать следующий SQL запрос к уже "расширенным данным" и.т.п. Запросы могут быть разными логическими этапами одного "большого" запроса ("скачать список радиопередатчиков, продающихся поставщиком X, для каждого товара попробовать скачать ТТХ, для каждого передатчика с мощностью выше 2Вт попробовать скачать национальный сертификат...") или стадиями запроса с неподвижной точкой ("скачать лист комплекрующих подукта X, затем для каджой комплектующей --- лист её комплектующих, продолжать до тех пор, пока будут обнаруживаться не расписанные ранее узлы"). В любом случае для SQL+PL нужно городить скрипт. В SPARQL-BI можно просто указать, за какими данными нужно лезть "наружу", если их в местной базе нет, а какие брать только из местных источников. helliumiv_an_ru3. Нормализация данных... Зависит от аппетитов ТС, цены начального наполнения и скорости изменения словарей. Хороший многоязыковой словарь может стоить ой-ой-ой, разумно как минимум для начала убедиться, что готового в природе не существует. ну это от платформы не зависитЕщё как зависит. Вот есть WordNet --- весь английский язык в одном флаконе RDF-графе. Ну и как в нём ковыряться скриптом? Никак. Если приспичит, то придётся ругаться на судьбу-злодейку и учить SPARQL и т.п. А раз выучил, так вопрос "цены разработчика" и снялся. В общем, куча мелких фенечек в обмен за одно серьёзное разовое вложение времени/сил. Стоит посмотреть до хотя бы той степени, когда прояснятся размер кучи и ценник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2010, 23:21 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
iv_an_ru В общем, куча мелких фенечек в обмен за одно серьёзное разовое вложение времени/сил. Стоит посмотреть до хотя бы той степени, когда прояснятся размер кучи и ценник. и опять вы забыли о преимуществах кучи мелких всегда готовых написать пасер на основе несложных формальных правил и готовой mysql-схемы, пшп-программистов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2010, 23:43 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
netwindiv_an_ru В общем, куча мелких фенечек в обмен за одно серьёзное разовое вложение времени/сил. Стоит посмотреть до хотя бы той степени, когда прояснятся размер кучи и ценник. и опять вы забыли о преимуществах кучи мелких всегда готовых написать пасер на основе несложных формальных правил и готовой mysql-схемы, пшп-программистов. Да, если задача будет простой, то эти преимущества будут решающими. Если сложной, то надо считать. Среди прочего, задать себе вопрос: этим пшп-программистам им религия не велит цепляться к чему-нибудь, кроме mysql? А то ведь hosted php для разовых поделок никто не отменял, если выхлоп не грузит систему, то могут и дальше на php писать, к примеру, весь веб-сайт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 00:18 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
iv_an_ruДа, если задача будет простой, то эти преимущества будут решающими. Если сложной, то надо считать. Среди прочего, задать себе вопрос: этим пшп-программистам им религия не велит цепляться к чему-нибудь, кроме mysql? А то ведь hosted php для разовых поделок никто не отменял, если выхлоп не грузит систему, то могут и дальше на php писать, к примеру, весь веб-сайт. Вроде бы принцип KISS еще тоже не отменили ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 09:37 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
hellium, iv_an_ru зарабатывает на тех, кто в него не верит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 09:53 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
helliumВроде бы принцип KISS еще тоже не отменили )Ну да. И для простых случаев KISS==LAMP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 17:23 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
statusdenДобрый вечер всем! Стоит следующая задача: Написать программу для туристического агенства. Суть такая: есть входные данные, или условия поиска ... тур-опреатор, город, категория отеля, питание, заезд с какого числа и т.п. ... Программа анализирует список из 50 примерно сайтов, и выдает результат в виде таблицы, например отсортир по ценам.. еще приявязать к этим отелям отзывы с двух сайтов. Вопрос: возможно ли такое осуществить ? ... Как это можно реализовать ? .... И если такое кто возьмется сделать, то цена вопроса.?! в таких случаях вы подписываете договор непосредственно с сайтами на поставку вам данных они ес-но берут за это деньги потом вы делаете на своем сайте сравнилку и по Affiliate ссылке передаете человека на соответствующую страницу за клиента вы получаете вознаграждение Pay-per-Click За парсинг чужой инфы вам могут влепить нехилый штраф ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2010, 15:00 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
jbond81За парсинг чужой инфы вам могут влепить нехилый штраф а мужики-то не знают ) А если серьезно, без контекста это слова ни о чем . Что за информация, откуда и куда сканится, публикуется ли, если да, то как, законодательство какой страны используется, и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2010, 15:35 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
helliumjbond81За парсинг чужой инфы вам могут влепить нехилый штраф а мужики-то не знают ) А если серьезно, без контекста это слова ни о чем . Что за информация, откуда и куда сканится, публикуется ли, если да, то как, законодательство какой страны используется, и т.п. мужики то не знают, а контекст "сделать сравнилку услуг по определенным сайтов". Вот в этом контексте нужно проблему решать не "граббингом и парсингом HTML", а заключением договоров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2010, 15:42 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2010, 15:44 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
Контекст "сделать сравнилку услуг по определенным сайтов. Дёшево. Конкурентам не платить". Тут партнёрка не канает (до определенного уровня) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2010, 19:19 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
Гата СеловКонтекст "сделать сравнилку услуг по определенным сайтов. Дёшево. Конкурентам не платить". Тут партнёрка не канает (до определенного уровня) кто есть конкуренты? это другие сравнилки. и зачем им платить? а партнерка заключается между сравнилкой (аффилиат-партнер) и поставщиками данных (сайты услуг). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 10:34 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
jbond81кто есть конкуренты? это другие сравнилки. и зачем им платить? видимо, вы все-таки ошибаетесь statusdenНаписать программу для туристического агенства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 10:38 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
автор Программа анализирует список из 50 примерно сайтов каких? кому принадлежат они? за граббинг информации с этих сайтов можно получить штраф. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 11:10 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
jbond81, ну так давай выписывай квитанцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 11:13 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
netwind, дополнение: в первую очередь надо выписывать квитанции гуглу, яндексу, майлру, рамблеру и бингу. деньжищ то сколько огрести можно будет ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 11:19 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
helliumnetwind, дополнение: в первую очередь надо выписывать квитанции гуглу, яндексу, майлру, рамблеру и бингу. деньжищ то сколько огрести можно будет ) имеется ввиду граббинг с целью обработки, сохранения в структурированном виде и последующего использования информации. а так же использования чужой информации (текстовой, графической и т.п.) на своем сайте. это не гугл и не яндекс. кстати, Яндекс Макрет, а так же другие сравнилки имеют именно API интерфейс, по которому шопу публикуют информацию о товарах и их ценах. Называется партнерская программа. Яндекс/Google там ничего не грабит и не парсит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 11:26 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
jbond81, квитанция где? куда штраф платить? и вообще, предъявите документы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 11:28 |
|
||
|
Программа. Сборщик информации с сайтов.
|
|||
|---|---|---|---|
|
#18+
jbond81имеется ввиду граббинг с целью обработки, сохранения в структурированном виде и последующего использования информации. а так же использования чужой информации (текстовой, графической и т.п.) на своем сайте. это не гугл и не яндекс. чем из вышеперечисленного поисковики не занимаются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 13:44 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36883388&tid=1343410]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
213ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 493ms |

| 0 / 0 |
