Действительно ли Amazon Web обслуживает запросы штрихкода/UPC поддержки API?

Другой хороший инструмент, хотя на ранних стадиях по словам автора сильный запах:

http://reek.rubyforge.org/

сильный запах в настоящее время включает очень наивные проверки на следующие запахи кода:

  • Длинный Метод
  • Большая Зависть Функции Класса
  • Необщительное Имя
  • Долгая Функция Утилиты Списка параметров
  • Вложенные Итераторы
  • Пара Управления
  • Дублирование
  • элемент списка

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

20
задан A.H. 23 November 2011 в 19:29
поделиться

1 ответ

Я сделал кое-что из этого недавно, и вот мой опыт.

Существует три основных подхода:

  1. Регулярные выражения.
    • Самый гибкий, самый простой в использовании, со слабо структурированной информацией и изменяющимися форматами.
    • Труднее проводить структурный анализ / анализ тегов, но легче выполнять сопоставление текста .
    • Встроенная проверка форматирования данных.
    • Сложнее поддерживать, чем другие, потому что вам нужно писать регулярное выражение для каждого шаблона, который вы хотите использовать для извлечения / преобразования документа
    • Обычно медленнее, чем 2 и 3 .
    • Хорошо работает для списков элементов аналогичного формата
    • Хороший инструмент разработки / тестирования регулярных выражений и несколько примеров страниц помогут. У меня есть хорошие отзывы о RegexBuddy. Попробуйте их демо.
    • Я добился наибольшего успеха в этом. Гибкость позволяет работать с неприятными, грубыми, живой HTML-код.
  2. Конвертируйте HTML в XHTML и используйте инструменты извлечения XML. Очистите HTML, преобразуйте его в разрешенный XHTML и используйте XPath / XQuery / X-something, чтобы запросить его как данные XML.
    • Инструменты: TagSoup, HTMLTidy и т. Д.
    • Качество преобразования HTML в XHML ОЧЕНЬ важно и сильно варьируется.
    • Лучшее решение, если данные, которые вам нужны, структурированы макетом HTML и тегами (данные в HTML таблицы, списки, группы DIV / SPAN и т. д.)
    • Наиболее подходит для получения структур ссылок, вложенных таблиц, изображений, списков и т. д.
    • Должен быть быстрее, чем вариант 1, но медленнее, чем вариант 3.
    • Хорошо работает, если форматирование содержимого изменяется / является переменным, а структура / макет документа - нет.
    • Если данные не структурированы тегами HTML, у вас проблемы.
    • Может использоваться с вариантом 1.
  3. ] Генератор парсеров (ANTLR и др.) - создает грамматику для синтаксического анализа и анализа страницы.
    • Я не пробовал это, потому что это не подходило для моих (беспорядочных) страниц
    • Наиболее подходит, если структура HTML сильно структурирована, очень постоянна, регулярна и никогда не меняется.
    • Используйте это, если в документе есть легко описываемые шаблоны, но они не включают HTML-теги и включают рекурсию или сложное поведение
    • Не требует ввода XHTML
    • БЫСТРАЯ пропускная способность, как правило
    • Большая кривая обучения, но проще в обслуживании

Я возился с веб-сборщиком для варианта 2, но я нахожу их синтаксис немного странным. Смесь XML и некоторого языка сценариев псевдо-Java. Если вам нравится Java и нравится извлечение данных в стиле XML (XPath, XQuery), это может быть билетом для вас.


Изменить: если вы используете регулярные выражения, убедитесь, что вы используете библиотеку с ленивыми квантификаторами и группами захвата! PHP '

15
ответ дан 30 November 2019 в 00:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: