Как восстановить чужую БД из интернет
6498
37
Коллеги программисты. Подскажите направление в решении следующей задачи.Назову ее "обратной". Прямая задача следующая. Допустим у вас есть прайс на товар и вам на интернет странице надо выложить эту БД в читаемом (табличном) виде. Теперь обратная задача. В интернете на чьм-то сайте выложена БД. Причем многостраничная. Надо каким то образом ее считать и представить в виде формата БД на своем компе. Какой подход может быть использован для обратной задачи с использованием языков программирования. Заранее благодарен за идеи.
fagit
скачиваем html.
парсим оный, из полученного генерируем SQL-дамп
заливаем дамп в любую SQL-бд (мускул, мсскуль, постгря - все что пожелаете)
пользуемся

для реализации можете использовать perl - есть и под винду, и под униксы, с текстом работает чудесно, регэкспы и прочие вкусности одни из лучших (имхо самые лучшие), модулей в cpan для того чтобы выдрать html из сети + законнектится к дв куча.
fagit
Задача эта уже давно решается разнообразными поисковиками товаров и цен.
Решать можно с помощью любого языка программирования, будьте только готовы к тому, что понадобится постоянная ручная подстройка.
Anomander
Задача эта уже давно решается разнообразными поисковиками товаров и цен.
Решать можно с помощью любого языка программирования, будьте только готовы к тому, что понадобится постоянная ручная подстройка.
Для меня это задача новая. Нельзя ли какунибудь ссылочку, чтобы конкретно разобраться
Mad_Dollar
скачиваем html.
парсим оный, из полученного генерируем SQL-дамп
заливаем дамп в любую SQL-бд (мускул, мсскуль, постгря - все что пожелаете)
пользуемся

для реализации можете использовать perl - есть и под винду, и под униксы, с текстом работает чудесно, регэкспы и прочие вкусности одни из лучших (имхо самые лучшие), модулей в cpan для того чтобы выдрать html из сети + законнектится к дв куча.
Спасибо за совет. К стыду своему даже не все понял. Но интуитивный вопрос. Есть HTML страница, на ней где то лежит таблица (есть еще и другой текст). Разве прежде не надо выделить из всего таблицу, чтобы потом как то загружать в БД?
fagit
страница, содержащая таблицу имеет текстовое начало в виде <table> и конец в виде </table>. Между ними - данные, которые нужно преобразовать из тектового представления в хтмл в нормальные данные, которые можно засунуть в БД. Обычная работа с текстом - use perl =)
fagit
Если вам так интересно - могу провести специально для вас семинар с практическими занятиями за кружкой пива на тему "What is it [censored] perl and how to use it. Regexp in perl and unix - what is it and how its work? =)" на вашем примере =)
Mad_Dollar
заступлюсь за пхп:улыб:пэхапёсты тож эту задачу решат на раз-два. :хехе:

ну а топикстартеру даж не знаю чего сказать... судя по вопросам, ему лучше всего найти кого-нить знающего.
artem2005
наше перлорегэкспы круче всех! =)
Mad_Dollar
иногда важен результат а не длина.. :1: ))))
artem2005
=) попробуем померятсо результатом? =) ваще похапе ваше регэкспы приобрело после долгих просьб и молитв нуждающихсо, однако перл же изначально разрабатывался для обработки текстовых данных (расшифруйте perl =) )
а еще я могу из перла "экзешник" собрать =)
fagit
Условия не ясны.

Для большей простоты можно воспользоваться банальным java`ом из области:

document.getElementById('tableID').getTagsByName('TR')

И т.д. и в итоге выйти на blabalbla.innerText.

Всё, и браузер сам уже распарсит все как надо.

Могу сделать такую штуку за деньги.
gaRex
угу. и в москву можно через владивосток ехать, причем пару раз в этот владивосток заехать..

а сколько денег то хочешь, сильно много?:хехе:
artem2005
Могу сделать такую штуку за деньги.
К сожалению денег по задаче нет, хотя она и для реального предприятия. Поставлена как поисковая для студентов старшекурсников со специализацией по ИТ.
Mad_Dollar
могу провести специально для вас семинар
Написал в личку
artem2005
Это стандартная фрилансерская задача.

И явно незапросто так делается.

Сходу думаю 15-20 т.р.
fagit
1. Открываем MS Excel.
2. Данные - Импорт внешних данных - Создать веб-запрос.
3. Вбиваем адрес в соответсвующую строку.
4. Выделяем нужную таблицу и жмём "Импорт".

Всё
Сибиряк
Если это так, то было бы здорово. Я поэкспериментирую. Спасибо.
fagit
интернет странице надо выложить эту БД в читаемом (табличном) виде. Теперь обратная задача. В интернете на чьм-то сайте выложена БД. Причем многостраничная. Надо каким то образом ее считать и представить в виде формата БД на своем компе.
Я впрямь робею уточнить - что такое формат БД и
чем он отличается от формата таблиц на вебстранице?
Сибиряк
1. Открываем MS Excel.
2. Данные - Импорт внешних данных - Создать веб-запрос.
3. Вбиваем адрес в соответсвующую строку.
4. Выделяем нужную таблицу и жмём "Импорт".

Всё
если запрос дает сотни и тысячи страниц, как быть?:улыб:
artem2005
В Excel 2007 1 миллион строк ограничение. Финансистам нравится....
iops
я говорю про страницы, на которые разбит результат поиска. а не про общее количество строк результата. чувствуете разницу, нет?
Ananas
что такое формат БД и
чем он отличается от формата таблиц на вебстранице
Я имею в виду какой либо формат реляционной БД. Скорее всего локальной, например .dbf. Цель- использовать механизм СУБД формирования всевозможных отчетов.
artem2005
если запрос дает сотни и тысячи страниц, как быть?:улыб:
Да это понятно:улыб:
Сибиряк
1. Открываем MS Excel.
2. Данные - Импорт внешних данных - Создать веб-запрос.
3. Вбиваем адрес в соответсвующую строку.
4. Выделяем нужную таблицу и жмём "Импорт".

Всё
поддержу - до сотни страниц, вероятно, быстрее получится...
только делал бы через правый клик по таблице, далее "экспорт в эксель"
если ж тянуть предполагается регулярно, без парсера не обойтись - пхп с регэкпами в помощь
artem2005
если запрос дает сотни и тысячи страниц, как быть?:улыб:
Кстати, а что мешает цыкл на VBA?
Это будет быстрее, чем парсить
Сибиряк
разные методы передачи данных. если, скажем, post или сессия - все, обламывается метод с экселем. так что раз этот способ не универсальный - отбрасываем его.
artem2005
если запрос дает сотни и тысячи страниц, как быть?:улыб:
запрос Вам не тысячи страниц даёт, а их количество.
У поисковиков защита стоит от программного выуживания из их бд данных
Ananas
:eek: да ну! сам то понял, что сказал? моя формулировка куда точнее :хехе:
и при чем тут поисковики вообще?
fagit
Это стандартная фрилансерская задача. И явно незапросто так делается. Сходу думаю 15-20 т.р.
С дуба, что ли, извиняюсь, рухнули, с такими ценами? Перловый парсер несколько лет назад заказывал за много меньшие рубли. Программист написал его за пару дней, тот влёт (ну, на самом деле часа за полтора, чтобы притворяться браузером делал периодически паузы) парсил сайт из 20 тысяч страниц пару лет, при этом, при изменении структуры разметки сайта можно было легко вносить изменения в сам скрипт. Топикстартеру просто нужно делать заказ именно perl-программистам, в этом плане МэдДоллар прав абсолютно. Если нужны регэкспы - это именно перл. Во втором издании Фридла пхп и java в связи с регекспами только упоминаются, типа, чтобы никого не обидеть. А изначально именно перл был заточен под парсинг текстовых данных.
1. "...сходу...".

2. "...несколько лет назад...".

3. "...за пару дней..."
- Учёт времени вёлся или это Ваша оценка из головы (см. "...несколько лет назад...")?
- Сколько в часах было?
- Какие тогда ставки у перловиков были и какие сейчас?

4. "...легко вносить изменения в сам скрипт..."
- Кому вносить?
- Тому, кто хорошо понимает регэкспы или ламеру?

5. "...регэкспы - это именно перл..."
- Это можно и SQL-сервером сделать:улыб: - Парсинг данных типа HTML`я можно делать и DOM-парсером с XLST или XPath`ом.
- Не перлом единым как говорится.
- С т.з. ставок программеров, дешевле заказать PHP`еру, т.к. их больше. Экономика здесь побеждает, а не писькомерка.
gaRex
Ну, вы же и сами понимаете, что была опубликована задача, цена на её решение и условия оплаты. Учёт часов исполнителя я не вёл, но, подозреваю, делал он это в свободное от работы время.
Что касается внесения изменений, то сложней разобраться с feed43.com или яху.пайпс, чем с документированным и форматированным перл-скриптом (это входило в условия).
Можно заказать и пхп-еру, какие проблемы. Можно и вам.
Только топик-стартер, похоже, вопрос задал теоретический. И ответ ожидает теоретический.:улыб:
AA
Как бэ топик-стартер вааще м.б. уголовник, ибо парс чужого сайта супротив его воли есть нарушение автоправ.
gaRex
Думаю, даже хуже - не уголовник, а сотрудник правоохранительных органов.
Смотри, выдаёт себя за «коллеги-программисты», чтобы вытянуть на себя тех, кто парсерами занимается и заарестовать насмерть на Колыму.
AA
Один день из жизни Ивана Денисовича?

:eek:

Даа... На зоне то перл мало поможет.

А, учитывая, что в стране РФ даже у ПИнк Флойда требовали отчислений самим себе, то это может быть вполне:улыб:
gaRex
парс чужого сайта супротив его воли есть нарушение автоправ.
Есть ли в поставленной задаче нарушение авторских прав. Пользователь выложил на сайте всю информацию. В принципе, ее можно и ручками переписать ничего не взламывая. Разработчик использует лишь программную автоматизацию. Кроме того должна же быть какая то система регистрации авторских прав типа патента. А то так даже случайное использование чужой информации можно приписать к нарушению. Должен быть принцип- что не запрещено, то разрешено. Есть ли где то документ, что поставленная мною задача относится к нарушающим права.
fagit
Кроме того должна же быть какая то система регистрации авторских прав типа патента.
Для того, чтобы иметь и защищать авторские права необязательно их формально регистрировать.
Есть даже экстравагантные способы - как застолбить свои авторские права, не вскрывая деталей публично (например, в некоторых странах можно отправить себе по почте описание зрегистрированным письмом)
Патенты и др. способы регистрации просто упрощают сцтяжничество.
В 95% случаев они только и делаются для сутяжничества.
Или же зашищают, не вскрывая деталей

Копирайт, который Вы видите на любой книжке является декларативным, он нигде не регистрируется!
А то так даже случайное использование чужой информации можно приписать к нарушению.
Жизнь сурова.
Незнание и неграмотность не освобождают от ответственности и законов, налагаемых обществом
(а зачастую её отягощают).

Большинству осужденных, как показывают исследования, не хватает интеллекта, чтобы понять за что их осудили

Есть ли где то документ, что поставленная мною задача относится к нарушающим права.
Есть. Копайте. Или консультируётесь со специалистами

PS
К тому же, регистрация авторских прав не имеет никакого отношения к правозаконности применения Вашего преступного изобретения.

Не запрещается регистрировать изобретения преступлений или преступных действий, как впрочём и сздавать, например, художественные произведения на их основе
Ananas
Возможно вы правы. У меня из за этого такие чувста, что ИТ технологиями (программированием) в России лучше не заниматься. Чистоту использования ПО соблюсти невозможно, даже если будешь стараться. Остается быть только менеджером по использованию программ, да и там можно попасться.Чувство, что все ИТешники на уголовном крючке. Любого можно выдернуть и посадить.
fagit
Остается быть только менеджером по использованию программ, да и там можно попасться.Чувство, что все ИТешники на уголовном крючке. Любого можно выдернуть и посадить.
Организаторам и руководителям дают гораздо большие сроки.
Это не только к ИТ или РФ относится. "Закон, что дышло, куда поаернул, туда и вышло"

Вон, когда надували ипотечный пузырь, то давали нобелевские премии за новые экономические модели и парадигмы, а когда надули - стали сажать за то же.