Мне нужно написать аннотатор веб-страницы. И мои требования следующие:

1) учитывая набор страниц, я хочу эффективно аннотировать их (в браузере, во внешнем приложении, которое умеет отображать HTML и т. д.)

2) Я выбираю (выделяю, делаю активным) вручную строку текста, и появляется выпадающее меню, позволяющее выбрать из набора опций

3) после этого появляется итератор (как в браузере при нажатии ctrl+F для поиска) и я хочу иметь возможность перемещаться по совпадениям строки, выбранной на предыдущем шаге, на той же странице

4) задана функция сравнения строк, имеющая интерфейс: для двух строк она выводит либо 1, либо 0, в зависимости от совпадения строк

5) когда я нажимаю кнопку итератора, я перехожу к следующему совпадению для выбранной строки, а затем должно появиться окно сообщения (или что-то еще, где я могу подтвердить, что это истинное совпадение)

6) подтвердив, что это истинное совпадение, следует изменить текст страницы таким образом, чтобы текущее совпадение было окружено специальным тегом (например, <<< optionX >>> совпавший текст <<< /optionX >>> ), где optionX определяется на основе значения, выбранного на первом шаге (раскрывающееся меню)

5) когда все совпадения (определенные функцией сравнения) найдены на странице, я хотел бы отметить другую строку текста на той же странице, а затем повторить процесс, найдя все совпадения, подтвердив некоторые из них и изменив страницу источник соответственно

6) тогда измененная страница должна храниться на локальном диске

ВОПРОСЫ: Не могли бы вы предложить, какой инструмент подходит для этого?

1)Можно ли использовать javascript и работать в браузере. Если да, то какие методы для этого необходимы и существуют ли какие-либо полезные библиотеки, которые делают именно это или хотя бы охватывают некоторые функции, описанные выше.

2) Может быть, лучше создать собственное настольное приложение, которое отображает страницу в специальном фрейме и имеет соответствующие кнопки для навигации, подтверждения и т. Д. (Рассматривается Python или C #), и опять же, какие классы и библиотеки могут помочь

[ОБНОВИТЬ]:

Я знаю, как работать с содержимым страницы, но мне интересно, как сделать так, чтобы аннотаторам было удобно пользоваться, как построить правильный диалог с пользователем: способы, чтобы все конфеты, такие как выпадающие меню и итератор, были видны для пользователей, диалог для подтверждения и т.д.

Цель состоит в том, чтобы аннотировать множество страниц, поэтому интерфейс должен быть эффективным. Я исследователь (и это не домашнее задание, как вы могли подумать, я просто описал то, что нужно в формальной форме), и у меня есть только небольшой опыт написания приложений, ориентированных на пользователя.

Заранее спасибо!

0
Ben 31 Мар 2011 в 01:08
2
Вы еще ничего не пробовали??
 – 
Naftali
31 Мар 2011 в 01:12
Привет, Нил, это не домашнее задание. Я просто хочу сделать это оптимально, и поэтому я прошу предложить правильный подход. Я понимаю, что это точно совсем не ракетостроение
 – 
Ben
31 Мар 2011 в 04:18

1 ответ

Это определенно работа веб-браузеров. Вы можете использовать JQuery для поиска и изменения HTML-страницы. В этом примере будут найдены все вхождения homework и изменен текст на << homework >>

$("*").each(function () { 
  if ($(this).children().length == 0) { 
    $(this).text($(this).text().replace('homework','<< homework >>')); 
  } 
});
0
cander 31 Мар 2011 в 05:25
Кандер, спасибо за ответ. хотя, возможно, следует сфокусировать вопрос немного больше. Я знаю, как работать с содержимым страницы, но мне интересно, как сделать так, чтобы аннотаторам было удобно пользоваться, вопрос, как правильно построить диалог с пользователем: способы, чтобы все конфеты, такие как выпадающие меню и итератор, виден пользователям и т. д. Цель состоит в том, чтобы аннотировать множество страниц, поэтому интерфейс должен быть эффективным. Я исследователь, и у меня плохой опыт написания приложений, ориентированных на пользователя. Спасибо
 – 
Ben
31 Мар 2011 в 06:01
Извините, это было немного грубо со всей этой "домашней работой". Я бы посоветовал взглянуть на jquery ui. Чтобы сохранить содержимое страниц, которые вы аннотируете, я бы написал весь ваш пользовательский интерфейс в javascript, возможно, используя мастер-диалог пользовательского интерфейса jquery $('<div> ....all my text annotating tools </div>').dialog() для редактирования и аннотирования вашей страницы. Таким образом, у вас может быть операция сохранения, которая запускается после закрытия диалогового окна и его удаления со страницы, поэтому вы можете выполнить простую `$.post('/mypagesavingservice', { html: $('html') }) для сохранения редактируемая страница
 – 
cander
31 Мар 2011 в 19:34
Cander, спасибо за расширенную версию. Попробую взломать что-л.
 – 
Ben
31 Мар 2011 в 20:40