Мне нужно написать аннотатор веб-страницы. И мои требования следующие:
1) учитывая набор страниц, я хочу эффективно аннотировать их (в браузере, во внешнем приложении, которое умеет отображать HTML и т. д.)
2) Я выбираю (выделяю, делаю активным) вручную строку текста, и появляется выпадающее меню, позволяющее выбрать из набора опций
3) после этого появляется итератор (как в браузере при нажатии ctrl+F для поиска) и я хочу иметь возможность перемещаться по совпадениям строки, выбранной на предыдущем шаге, на той же странице
4) задана функция сравнения строк, имеющая интерфейс: для двух строк она выводит либо 1, либо 0, в зависимости от совпадения строк
5) когда я нажимаю кнопку итератора, я перехожу к следующему совпадению для выбранной строки, а затем должно появиться окно сообщения (или что-то еще, где я могу подтвердить, что это истинное совпадение)
6) подтвердив, что это истинное совпадение, следует изменить текст страницы таким образом, чтобы текущее совпадение было окружено специальным тегом (например, <<< optionX >>> совпавший текст <<< /optionX >>> ), где optionX определяется на основе значения, выбранного на первом шаге (раскрывающееся меню)
5) когда все совпадения (определенные функцией сравнения) найдены на странице, я хотел бы отметить другую строку текста на той же странице, а затем повторить процесс, найдя все совпадения, подтвердив некоторые из них и изменив страницу источник соответственно
6) тогда измененная страница должна храниться на локальном диске
ВОПРОСЫ: Не могли бы вы предложить, какой инструмент подходит для этого?
1)Можно ли использовать javascript и работать в браузере. Если да, то какие методы для этого необходимы и существуют ли какие-либо полезные библиотеки, которые делают именно это или хотя бы охватывают некоторые функции, описанные выше.
2) Может быть, лучше создать собственное настольное приложение, которое отображает страницу в специальном фрейме и имеет соответствующие кнопки для навигации, подтверждения и т. Д. (Рассматривается Python или C #), и опять же, какие классы и библиотеки могут помочь
[ОБНОВИТЬ]:
Я знаю, как работать с содержимым страницы, но мне интересно, как сделать так, чтобы аннотаторам было удобно пользоваться, как построить правильный диалог с пользователем: способы, чтобы все конфеты, такие как выпадающие меню и итератор, были видны для пользователей, диалог для подтверждения и т.д.
Цель состоит в том, чтобы аннотировать множество страниц, поэтому интерфейс должен быть эффективным. Я исследователь (и это не домашнее задание, как вы могли подумать, я просто описал то, что нужно в формальной форме), и у меня есть только небольшой опыт написания приложений, ориентированных на пользователя.
Заранее спасибо!
1 ответ
Это определенно работа веб-браузеров. Вы можете использовать JQuery для поиска и изменения HTML-страницы. В этом примере будут найдены все вхождения homework
и изменен текст на << homework >>
$("*").each(function () {
if ($(this).children().length == 0) {
$(this).text($(this).text().replace('homework','<< homework >>'));
}
});
$('<div> ....all my text annotating tools </div>').dialog()
для редактирования и аннотирования вашей страницы. Таким образом, у вас может быть операция сохранения, которая запускается после закрытия диалогового окна и его удаления со страницы, поэтому вы можете выполнить простую `$.post('/mypagesavingservice', { html: $('html') }) для сохранения редактируемая страница
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.