Область техники, к которой относится изобретение
Настоящее техническое решение относится к способам и системам для проверки веб-страниц.
Уровень техники
[0001] Веб-страницы многофункциональны и могут быть использованы в разных контекстах и разными способами. Например, веб-страница может быть личной веб-страницей, коммерческой веб-страницей, государственной веб-страницей или веб-сайтом некоммерческой организации. Торговля через интернет обычно является обменом продуктов и услуг потребителями или субъектами предпринимательской деятельности по интернету. В известном примере потребитель "делает покупки он-лайн" с помощью поиска и выбора продуктов или услуг по он-лайн каталогам или перечням, а затем использует для завершения покупки кредитную карту. Интернет значительно облегчает проведение интернет-торговли, частично из-за того, что в нем используются стандартные методики для обмена информацией.
[0002] Было создано много стандартов для обмена информацией в интернете, например, электронная почта и всемирная паутина (World Wide Web - "WWW"). Сервис WWW может позволить серверной компьютерной системе (т.е. веб-серверу или веб-сайту) отправлять разнообразную информацию с веб-страницы на удаленную клиентскую компьютерную систему для отображения в ней. Каждый ресурс (например, каждое клиентское компьютерное устройство или веб-страница) WWW может быть уникально определен с помощью единого указателя ресурсов ("URL"). Для просмотра конкретной веб-страницы клиентская компьютерная система может конкретизировать URL этой веб-страницы, например, в HTTP-запросе (HyperText Transfer Protocol - протокол передачи гипертекста). Запрос затем пересылается на веб-сервер, который поддерживает веб-страницу. В ответ веб-сервер посылает запрошенную веб-страницу клиентской компьютерной системе для отображения в браузере, который обычно является специализированным программным приложением, установленным в клиентской компьютерной системе, которое осуществляет запрос веб-страниц и отображение веб-страниц.
[0003] На текущий момент веб-страницы в общем случае определяются с помощью HTML (HyperText Markup Language - язык разметки гипертекста). HTML может предоставлять стандартный набор тегов, которые определяют то, как будет отображена веб-страница. В одном примере, когда пользователь указывает в браузере, связанном с клиентской компьютерной системой, что нужно отобразить веб-страницу, веб-браузер отправляет запрос серверной компьютерной системе, запрашивая передачу в клиентскую компьютерную систему документа HTML, который определяет веб-страницу. Документ HTML может содержать разнообразные теги, которые управляют отображением текста, графических элементов, элементов управления и URL других веб-страниц, доступных в этой серверной компьютерной системе или других компьютерных системах. Веб-страницы могут быть в общем случае определены статичными документами HTML, которые созданы и хранятся в серверной компьютерной системе и затем извлекаются при запросе одной или нескольких клиентских компьютерных систем.
[0004] При отслеживании изменений веб-страницы, относящихся к информации, данным, и активности пользователей он-лайн, могут быть активированы различные теги веб-страницы в любое время в течение загрузки веб-страницы. Кроме того, публикаторы или владельцы веб-страницы могут сотрудничать с третьими лицами, которые предоставляют теги различных типов и для различных целей. Однако, из-за постоянных динамических и объемных изменений информации и данных, связанных с тегами веб-страницы, проверка правильности данных и стабильности веб-сайта может занимать много времени, может быть трудоемкой и затратной из-за числа веб-страниц, которые могут использоваться на веб-сайте, сложности взаимосвязи веб-страниц, и высокого уровня квалификации, который требуется от разработчика веб-страницы. По мере увеличения числа тегов замедляется загрузка и обработка веб-страниц, а нестабильность, наличие ошибок или невозможность обработки веб-страниц может значительно повлиять на пользовательское взаимодействие, что понизит эффективность рекламы он-лайн или мер по стимулированию сбыта. Более того, он-лайн публикаторы или владельцы веб-сайта могут столкнуться с рядом других проблем, связанных с хранением тегов различных типов и тегов для различных целей (включая устаревшие теги), поддержкой тегов с новыми или меняющимися характеристиками, и/или улучшением эффективности управления постоянно увеличивающимся числом тегов, которые могут при этом быть тегами разных типов. Поэтому необходима эффективная проверка веб-страниц.
Раскрытие изобретения
[0005] Предлагаются системы, способы и компьютерные программные продукты для проверки веб-страниц. В одном из вариантов осуществления система может быть выполнена с возможностью выполнять автоматическую проверку различных веб-страниц, хранящихся веб-сервером (например, веб-сервером торговли) для подтверждения корректности этих веб-страниц и определения ошибок в макете и/или содержимом веб-страниц. Может периодически проводиться проверка всех хранящихся веб-страниц, только новых добавленных веб-страниц, или только недавно обновленных веб-старниц (например, веб-страниц, содержимое которых было обновлено). Проверка веб-страниц может быть проведена с использованием наборов правил и шаблонов проверки, которые автоматически создаются системой на основе анализа ранее проверенных веб-страниц. Например, система может быть выполнена с возможностью автоматически анализировать элементы HTML множества проверенных веб-страниц той же самой категории продукта/товара/услуги и создавать набор шаблонов проверки, идентифицируя общие для веб-страниц элементы, и наборы правил проверки, определяя отношения между элементами веб-страницы. Конкретнее, правила проверки и шаблоны могут распространяться на элементы веб-страниц, которые отличаются друг от друга или сходны друг с другом, или на одинаковые элементы с изменяющимся содержимым, связанным с этими элементами. Эти наборы правил и шаблонов проверки затем используются для проверки других веб-страниц той же самой категории для подтверждения того, что они функционируют правильно. Технический результат настоящего изобретения заключается в реализации назначения расширенного арсенала технических средств для проверки веб-страниц.
[0006] В одном из вариантов осуществления приводится способ для проверки веб-страниц, способ содержит: получение двух или более эталонных веб-страниц, причем каждая веб-страница содержит множество элементов веб-страницы; анализ процессором элементов двух или более эталонных веб-страниц для идентификации сходства и взаимоотношений между элементами веб-страниц; создание процессором набора шаблонов проверки, идентифицирующих по меньшей мере множество элементов, общих для двух или более эталонных веб-страниц; создание процессором набора правил проверки, определяющих по меньшей мере логические взаимоотношения между элементами веб-страницы каждой эталонной веб-страницы; и подтверждение процессором соответствия проверяемой веб-страницы набору шаблонов проверки и набору правил проверки.
[0007] В другом варианте осуществления анализ элементов веб-страницы двух или нескольких эталонных веб-страниц для идентификации сходства и взаимоотношений между элементами веб-страниц дополнительно содержит: создание одного или нескольких регулярных выражений для одного или нескольких элементов веб-страниц; и использование регулярных выражений для идентификации сходных элементов в двух или более эталонных веб-страницах.
[0008] В другом варианте осуществления регулярные выражения могут содержать множество символов и операторов для определения набора одной или нескольких строк в виде выражения или шаблона.
[0009] В другом варианте осуществления регулярное выражение может содержать самый длинный общий префикс, самый длинный общий суффикс и самую длинную общую подстроку текстового содержимого элемента веб-страницы.
[0010] В другом варианте осуществления регулярное выражение может быть выполнено с возможностью сравнивать выбранный процент текстового содержимого элемента веб-страницы.
[0011] В другом варианте осуществления способ может дополнительно содержать в себе идентификацию категории двух или более эталонных веб-страниц и связывании созданного набора правил проверки и набора шаблонов проверки с категорией.
[0012] В другом варианте осуществления подтверждение соответствия проверяемой веб-страницы набору шаблонов проверки и набору правил проверки может дополнительно содержать: идентификацию категории проверяемой веб-страницы; идентификацию набора правил проверки и набора шаблонов проверки, связанных с категорией проверяемой веб-страницы; применение набора правил проверки и набора шаблонов проверки для проверки веб-страницы.
[0013] В другом варианте осуществления идентификация набора правил проверки и набора шаблонов проверки, связанных с категорией может дополнительно содержать: идентификацию структуры иерархического дерева со множеством узлов, где каждый узел связан с набором правил проверки и набором шаблонов проверки, причем по меньшей мере один набор правил проверки и набор шаблонов проверки связан с категорией проверяемой веб-страницы; "обход" иерархического дерева от идентифицированного узла до корневого узла и идентификацию наборов правил проверки и наборов шаблонов проверки, связанных с каждым "пройденным" узлом; извлечение множества идентифицированных наборов правил проверки и наборов шаблонов проверки, связанных с каждым "пройденным" узлом, для создания полного набора правил проверки и шаблонов проверки; и использование полного набора правил проверки и шаблонов проверки для подтверждения соответствия проверяемой веб-страницы.
[0014] В другом варианте осуществления приводится система для проверки веб-страниц, содержащая: по меньшей мере один процессор, выполненный с возможностью: получать две или более эталонные веб-страницы, причем каждая веб-страница содержит множество элементов веб-страницы; анализировать элементы веб-страницы двух или более эталонных веб-страниц для идентификации сходства и взаимоотношений между элементами веб-страниц; создавать набор шаблонов проверки, идентифицирующих по меньшей мере множество элементов, общих для двух или более эталонных веб-страниц; создавать набор правил проверки, определяющих по меньшей мере логические взаимоотношения между элементами веб-страницы каждой эталонной веб-страницы; и подтверждать соответствие проверяемой веб-страницы набору шаблонов проверки и набору правил проверки.
[0015] В другом варианте осуществления приводится постоянный машиночитаемый носитель, содержащий выполняемые компьютером инструкции для проверки веб-страниц, включающие в себя инструкции для: получения двух или более эталонных веб-страниц, причем каждая веб-страница содержит множество элементов веб-страницы; анализа элементов веб-страниц двух или более эталонных веб-страниц для идентификации сходства и взаимоотношений между элементами веб-страниц; создания набора шаблонов проверки, идентифицирующих по меньшей мере множество элементов, общих для двух или более эталонных веб-страниц; создания набора правил проверки, определяющих по меньшей мере логические взаимоотношения между элементами веб-страницы каждой эталонной веб-страницы; и подтверждения соответствия проверяемой веб-страницы набору шаблонов проверки и набору правил проверки.
[0016] Представленное выше описание упрощенных вариантов осуществления настоящего технического решения служат для понимания основных его принципов. Это описание не является исчерпывающим для всех рассматриваемых объектов, и не предназначено для определения ключевых или важнейших элементов всех вариантов осуществления или для ограничения объема любого или всех объектов настоящего технического решения. Единственной его целью является представление одного или нескольких объектов в упрощенной форме перед более подробным описанием, которое следует ниже. Для выполнения вышеизложенной задачи один или несколько вариантов осуществления настоящего технического решения включают в себя признаки, описанные и конкретно указанные в формуле изобретения.
Краткое описание чертежей
[0017] Прилагаемые чертежи включены в данное описание и составляют его часть, иллюстрируют один или несколько вариантов осуществления настоящего технического решения вместе с подробным описанием и служат для пояснения принципов и вариантов осуществления настоящего технического решения.
[0018] Фиг. 1 является схемой, иллюстрирующей пример сетевой архитектуры для проверки веб-страниц.
[0019] Фиг. 2 является блок-схемой, иллюстрирующей пример системы проверки веб-страниц.
[0020] Фиг. 3 является схемой, иллюстрирующей пример анализа двух предварительно проверенных веб-страниц для определения правил проверки и шаблонов проверки веб-страниц.
[0021] Фиг. 4 показывает пример структуры иерархического дерева для хранения и управления правилами проверки и шаблонами проверки веб-страниц.
[0022] Фиг. 5 является блок-схемой, иллюстрирующей пример способа проверки веб-страниц.
[0023] Фиг. 6 является блок-схемой, иллюстрирующей другой пример способа проверки веб-страниц.
[0024] Фиг. 7 является схемой, иллюстрирующей пример обычной компьютерной системы, на которой реализованы системы и способы проверки веб-страниц.
Осуществление изобретения
[0025] Варианты осуществления настоящего технического решения описаны здесь в контексте систем, способов и компьютерных программных продуктов для проверки веб-страниц. Специалистам в данной области техники будет понятно, что следующее описание является исключительно иллюстративным и не предназначено для установления каких-либо ограничений. Другие варианты осуществления будут очевидны специалистам в данной области техники, обладающих преимуществами от прочтения настоящего описания. Теперь подробнее будут описаны варианты осуществления настоящего технического решения, проиллюстрированные в прилагаемых чертежах. На всех чертежах и в нижеследующем описании одни и те же элементы по возможности будут пронумерованы одинаково.
[0026] Фиг. 1 является схемой, изображающей пример многоуровневой системы 100 на сетевой основе, в которой применяется архитектура "клиент-сервер", которая может быть задействована для реализации описанных систем и способов проверки веб-страниц. Сетевая система 100, например, веб-сайта он-лайн торговли, веб-сайта социальных сетей, веб-сайта поставщика услуг (финансового сервиса, туристического сервиса), веб-сайтов государственных структур или некоммерческой организации, или института может включать в себя клиентскую сторону, которая содержит различные электронные пользовательские устройства 102, например, мобильное устройство, настольный компьютер, ноутбук и т.д. В одном из вариантов осуществления устройство 102 может включать в себя по меньшей мере модуль 104 приложений (включающий в себя, например, приложения третьих лиц, использующие прикладной программный интерфейс (API)) и сетевой браузер 106 (например, Firefox, Internet Explorer, Google Chrome, Opera, и Safari) для доступа к сетевой торговой площадке или системе публикаций на стороне сервера по сети 108, например, по интернету, через проводное или беспроводное подключение. В контексте сетевой торговли функционал стороны сервера может включать в себя, например, отображение товаров или продуктов на продажу по интернету от различных удаленных продавцов по сети 108 устройствам 102.
[0027] В одном из вариантов осуществления модуль приложений устройства 102 может также включать в себя приложения третьих лиц, осуществляющие доступ к сетевой системе 100 через программный интерфейс, предоставленный сервером 112 API или сервером 120 третьих лиц. Например, сервер 112 API или сервер 120 третьих лиц может, используя информацию, извлеченную из сервера(ов) 114 приложений, поддерживать одну или несколько характеристик или функций на веб-сайте, хранящемся одним или несколькими третьими лицами, для каждого устройства 102. Веб-сайт(ы) третьих лиц могут предоставлять одну или несколько функций из следующего списка: рекламную, рыночную или платежную, которые поддерживаются соответствующими приложениями сетевой системы 100. Следует понимать, что, в дополнение к прямому доступу к сетевой системе 100, модуль 104 приложений вместе с веб-браузером 106 на каждом устройстве 102 может также быть использован для доступа к информации, предоставленной различными веб-сервисами в частных сетях или файлах в файловых системах, выполняемых на каждом устройстве.
[0028] Термин "модуль" в данном контексте означает физическое устройство, аппарат или множество модулей, выполненных с использованием аппаратного обеспечения, например, с помощью, интегральной схемы специального назначения (ASIC) или программируемой логической интегральной схемы (FPGA), или же комбинации аппаратного и программного обеспечения, например, с помощью микропроцессорной системы и набора инструкций, реализующих функционал модуля, которые (при выполнении) трансформируют микропроцессорную систему в устройство специального назначения. Модуль также может быть реализован в виде комбинации обоих, причем некоторые конкретные функции реализуются за счет аппаратного обеспечения, а другие функции реализуются комбинацией аппаратного и программного обеспечения. В некоторых вариантах осуществления настоящего технического решения по меньшей мере частично в некоторых случаях модуль может быть реализован на процессоре компьютера общего назначения (например, на таком, который описан подробнее ниже на Фиг. 6). Соответственно, каждый модуль может быть реализован в виде множества различных конфигураций и не ограничивается конкретным вариантом осуществления, приведенным здесь в качестве примера.
[0029] Как показано на Фиг. 1, сторона сервера сетевой системы 100 может использовать N-уровневую архитектуру приложения (N является выбранным целым), включая, например, один или несколько веб-серверов 110, серверы 112 прикладного программного интерфейса (API), серверы 114 приложений, серверы 116 баз данных для соединения и управления различными базами данных 118. Такая N-уровневая архитектура сервера может не только предоставить возможность реализовать пользовательский интерфейс каждого устройства 102 (например, тонкий клиент, выполненный как компьютер или компьютерная программа для представления данных и обмена данными, хотя в большой степени и зависящий от другого компьютера (его сервера) для выполнения своей вычислительной роли), алгоритм (например, правила для преобразования данных и управления информацией, относящейся к веб-странице, в соответствии с особенностями настоящего приложения, описанного ниже) на стороне сервера, разработать, сохранить и поддерживать хранилище компьютерных данных и доступ к данным как независимые модули на одной и той же или на разных платформах (например, сервер 116 баз данных и база(ы) данных 118), но также и обновить или заменить любой из N уровней независимо в ответ на изменения в разработке, управлении и требованиях использования или технологии.
[0030] Входной веб-сервер 110 может хранить один или несколько сервисов, например, мобильная торговля, электронный перевод денежных средств, управление поставками, интернет-маркетинг, обработка операций он-лайн (в реальном времени), электронная система обмена данными (EDI), система управления запасами, системы автоматизированного сбора данных для различных пользовательских устройство 102. В одном из вариантов осуществления входной веб-сервер 110 может быть выполнен с возможностью обработки (например, получения и ответа) HTTP-запросов от каждого пользовательского устройства 102 для HTML-страниц, предоставления сервисов безопасности через, например, протокол безопасных соединений, с помощью подтверждения пользовательского имени и пароля, полученных от каждого пользовательского устройства 102, и обработки сертификатов и частных/общественных основных сведений, необходимых для авторизации, обработки кредитной карты и другой защищенной информации. Веб-сервер 110 может также быть выполнен с возможностью облегчать передачу данных от сервера к серверу, и предоставлять индексацию содержимого сайта и возможность поиска ключевых слов по содержимому сайта. Кроме того, веб-сервер 110 может записывать в журнал файлы пользовательских посещений, включая время, длительность и источники, и предоставлять почтовые сервисы, включая отправку, получение и хранение сообщений электронной почты. Относительно предоставляемого содержимого (статичного и динамического), веб-сервер 110 может также быть выполнен с возможностью предоставлять инструменты управления сайтом, включая расчеты и отображение основной статистики сайта (например, уникальные посетители, запросы страницы, источник HTTP-запросов).
[0031] Кроме того, сервер 110 веб-страницы может хранить HTML или иной код, требуемый для создания веб-страницы и с заголовком, и с основной информацией как завершенную веб-страницу или шаблон. С помощью инструментов для создания динамической страницы сервер 110 может сохранять содержимое одной или нескольких веб-страниц как объектов в базе данных вместо того, чтобы заранее запрограммировать это содержимое в HTML. Созданные веб-страницы включают в себя HTML-код, который задает внешний вид веб-страницы, и другие коды (например, парные символы-разграничители), которые задают семантику веб-страницы. Во время обработки конкретной веб-страницы или шаблона веб-сервер 110 может определить парные символы-разграничители и интерпретировать каждую строку символов между ними. Эти строки символов могут определить, например, динамический тег. Хотя обычно веб-страницы закодированы на HTML, они могут быть созданы или закодированы с использованием других форматов: XML (расширенный язык разметки), VoiceXML (расширенный язык речевой разметки) или другие языки разметки.
[0032] Веб-сервер 110, сервер 112 API и сервер 120 третьих лиц может быть напрямую соединен или может использовать программные веб-интерфейсы для соединения с одним или несколькими серверами 114 приложений, которые хранят одно или несколько приложений для предоставления конкретных функций, требуемых веб-сайтом. Сервер(ы) 114 приложений может быть соединен с одним или несколькими внутренними серверами 116 баз данных, которые обеспечивают доступ к одной или нескольким базам данных 118. Поэтому сервер(ы) 114 приложений может являться связующей программой сервера, которая позволяет входному клиенту на основе браузера извлекать данные из внутренних баз данных и наследуемых систем, например, больших серверных компьютеров или мейнфреймов. В одном из вариантов осуществления веб-сервер 110 и сервер(ы) 114 приложений могут быть объединены, чтобы совместно предоставлять внутренний программный код, реализующий функциональность приложения, с помощью различных протоколов, включая HTTP, и управлять безопасностью, обработкой операций, группировкой ресурсов и обменом сообщений. Однако, в случае масштабных торговых процедур по сети, когда возникает проблема распределения нагрузки, может использоваться множество серверов приложений и несколько отдельных веб-серверов в соответствии с N-уровневой сетевой архитектурой.
[0033] Сервер(ы) 114 приложений могут реализовать множество приложений (не показаны) для предоставления ключевых функций и услуг пользователям, которые совершили доступ к сетевой системе 100. В контексте сетевой торговли сервер(ы) 114 приложений могут взаимодействовать с серверами 116 баз данных и базой(ами) данных 118 для хранения и управления описаниями продуктов и покупателей, а также информацией о цене, предоставлять он-лайн каталог/базу данных, отображающую описания продуктов и цены, хранить и доставлять потоковое медиа содержимое (текст, аудио или видео), предоставлять обработку операций он-лайн, включая принятие заказов, обработку платежей, проведение он-лайн аукционов и связь с другими торговыми площадками, связанными с веб-сервером 110, сервером 112 API и сервером 120 третьих лиц, поддерживать сетевую рекламу, включая адаптированный и персонализированный экран рекламных элементов на основе поведения покупателя и его характеристик, создавать/хранить списки рассылок и управлять почтовыми интернет-маркетинговыми кампаниями. И в случае объединения, и в случае отдельной реализации сервер(ы) 114 приложений могут также быть выполнены с возможностью отслеживать и управлять доступом к главному веб-серверу 110 и реализовывать защиту с помощью межсетевого экрана (firewall).
[0034] Следует понимать, что, хотя было показано, что система 100 на Фиг. 1 применяет архитектуру клиент-сервер, возможно применение альтернативных архитектур, включая распределенную или одноранговую (peer-to-peer) архитектурную систему.
[0035] В одном из вариантов осуществления система 100 может быть выполнена с возможностью выполнять автоматическую проверку различных веб-страниц, находящихся на веб-сервере 110 и хранящихся в базе данных 118, для подтверждения корректности этих веб-страниц и определения ошибок в макете и/или содержимом веб-страниц. Может периодически проводиться проверка всех веб-страниц, только новых добавленных веб-страниц, или только недавно обновленных веб-страниц (например, веб-страниц, содержимое которых было обновлено). Проверка веб-страниц может быть проведена с использованием наборов правил и шаблонов проверки, которые автоматически создаются системой на основе анализа ранее проверенных веб-страниц. Например, система 100 выполнена с возможностью автоматически анализировать элементы HTML множества проверенных веб-страниц той же самой категории продукта/товара/услуги и создавать шаблоны проверки, идентифицируя общие для веб-страниц элементы, и правила проверки, определяя взаимоотношения между элементами веб-страницы. Конкретнее, правила и шаблоны могут распространяться на элементы веб-страниц, которые отличаются друг от друга или одни и те же (или в основном сходные), или одинаковые элементы с изменяющимся содержимым, связанным с этими элементами. Эти правила и шаблоны проверки затем используются для проверки других веб-страниц той же самой категории для подтверждения того, что они функционируют правильно.
[0036] На Фиг. 2 изображен пример системы 200 для проверки веб-страниц, которые могут быть реализованы в связи с сетевой архитектурой 100. В одном примере сервер 210 приложений может быть выполнен с возможностью создавать наборы правил и шаблонов проверки для проверки и подтверждения соответствия веб-страниц, хранящихся на сервере 208. В связи с этим сервер 210 приложений может включать в себя селектор 218 веб-страниц, выполненный с возможностью запрашивать/извлекать через интерфейс 214 из базы данных 228 веб-страниц веб-сервера 208 двух или более предварительно проверенных эталонных веб-страниц или веб-сайтов (например, сайт сетевой торговли), хранящийся веб-сервером 208. Веб-сервер 208 может управляться, например, он-лайн оператором розничной торговли/услуги. Кроме того, в зависимости от распределения нагрузки среди различных процедур сервера, веб-сервер 208 и сервер 210 приложений могут быть объединены или реализованы отдельно в разных вариантах осуществления.
[0037] В одном из вариантов осуществления запрошенные предварительно проверенные веб-страницы должны быть связаны с той же самой категорией товаров или услуг. Это необходимо из-за того, что веб-страницы той же самой категории обладают одинаковым макетом и сходным текстовым содержимым, в то время как веб-страницы разных категорий могут обладать разными макетами и различным текстовым содержимым. Так, например, все веб-страницы, на которых продаются цифровые фотоаппараты, будут обладать сходным содержимым, например, тип светочувствительного элемента, тип объектива, разрешение изображения, цифровой и аналоговый зум, выдержка и т.д. И напротив, веб-страницы, на которых продается обувь, будет обладать иным макетом и содержимым, например, окно выбора цвета обуви, окно выбора размера обуви, множество изображений товара разных цветов и т.д. Однако, следует понимать, что несмотря на многочисленные различия, веб-страницы разных категорий товаров также будут обладать сходным содержимым, например, цена товара, описание товара, отзывы покупателей, список связанных товаров, информация о доставке и т.д.
[0038] В ответ на запрос от сервера 210 приложения, веб-сервер 208 может идентифицировать две предварительно проверенные веб-страницы одной и той же категории (например, цифровые фотоаппараты), используя, например, URL этих страниц. Так, например, URL одной веб-страницы может выглядеть как "market.yandex.ru/search/goods/cameras/camera1.htm", a URL другой сходной веб-страницы может выглядеть как "market.yandex.ru/search/goods/cameras/camera2.htm". Анализ URL этих веб-страниц веб-сервером 208 указывает, что они обе связаны с товарами одной категории товаров - "фотоаппараты". Поскольку эти две предварительно проверенные веб-страницы связаны с одной категорией (например, категорией товара), то макет и содержимое этих веб-страниц может быть сходным. Поэтому эти две веб-страницы могут быть использованы для создания правил и шаблонов проверки для проверки других веб-страниц той же категории.
[0039] Получив выбранные предварительно проверенные эталонные веб-страницы от веб-сервера 208 сервер 210 приложений может использовать анализатор 220 данных элементов веб-страниц для осуществления анализа макета и/или содержимого этих веб-страниц для идентификации сходных и различных элементов этих веб-страниц, а также логических взаимоотношений между идентифицированными элементами. Фиг. 3 изображает примеры извлеченных HTML-документов 306 и 308, которые при реализации браузером 206 пользовательского устройства 202 создают веб-страницы 302 и 304. А именно, каждый HTML-документ 306 или 308 может содержать набор кодов в формате текстового файла для управления представлением и отображением информации, связанной с различными элементами веб-страниц, на компьютерном устройстве (например, устройстве 202 на Фиг. 2). Примеры информации, которая может быть отображена на веб-страницах 302 и 304 посредством использования HTML, может включать в себя текстовую информацию, изображения, видео, аудио и другие выполнимые программы. В одном из вариантов осуществления анализатор 220 данных элементов веб-страниц может анализировать HTML-теги, признаки (атрибуты) и текст, связанный и каждым элементом веб-страницы веб-страниц 302 и 304 для определения сходства или различия между элементами этих двух веб-страниц.
[0040] В синтаксисе HTML большинство элементов пишутся как начальный тег и конечный тег с содержимым между ними. HTML-тег может состоять из имени элемента, окруженного угловыми скобками. В конечном теге после открывающей угловой скобки также имеется знак слэша для того, чтобы отличить конечный тег от начального. Например, тег параграфа <р> может быть использован для структурирования текстовой информации веб-страницы на различные параграфы. Каждый параграф текста может быть расположен между открывающим тегом <р> и закрывающим тегом </р>. Пример распространенных HTML-тегов может включать в себя тег заголовка <h1>-<h6>, выделение жирным шрифтом <b>, создание гипертекстовой ссылки <а>, изображение <img>, блок <div>, таблица <table>, кнопка <button>, разнообразные типы ввода <input>, список элементов <select>, видео <video>, и т.д. Каждый тег может содержать в своей открывающей скобке множество признаков, определяющих, например, визуальные характеристики текста, связанного с тегом, например, вид шрифта, цвет шрифта, размер шрифта, цвет фона, размеры и т.д. Между скобками тег может содержать текст, который может быть воспроизведен браузером 206 для отображения на пользовательском устройстве 202.
[0041] Внизу приводится как пример часть упрощенного кода HTML-документа 306, который при исполнении веб-браузером 206 создает веб-страницу 302 для отображения на пользовательском устройстве 202. Код HTML-документа 308 может быть, в основном, сходным.
[0042] В одном из вариантов осуществления анализатор 220 данных элементов веб-страниц, выполнен с возможностью анализировать HTML-коды 306 и 308 веб-страниц 302 и 304 и идентифицировать их сходные, различные и связанные элементы. В данном случае HTML-элемент или элемент веб-страницы может относиться к индивидуальному компоненту HTML-документа или веб-страницы, который был преобразован в объектную модель документа (DOM), включающую в себя теги, признаки и текст, но не ограничивающуюся ими. В одном примере анализатор 220 данных элементов веб-страниц может анализировать HTML-путь к каждому элементу веб-страниц 302 и 304 и связывать каждый адрес веб-страницы, например, market.yandex.ru/shop/goods/camera/camera1 (ссылка ведет на веб-страницу цифровых фотоаппаратов) с конкретным списком элементов, которые релевантны для веб-страницы конкретной категории продуктов/товаров/услуг (например, фотоаппаратов). В одном из вариантов осуществления анализатор 220 данных элементов веб-страниц извлекает все HTML-элементы или элементы веб-страницы, связанные с выбранными предварительно проверенными веб-страницами из базы данных 228 веб-страниц и других серверов/баз данных 236 (например, сервер 112 API и сервер 120 третьих лиц на Фиг. 1).
[0043] Когда получены все элементы предварительно проверенных эталонных веб-страниц 302 и 304, анализатор 220 данных элементов веб-страниц может проанализировать HTML-коды 306 и 308 и извлечь некоторые или все текстовые части идентифицированных HTML-элементов. Анализатор 220 данных элементов веб-страниц затем сравнивает извлеченные текстовые части двух эталонных веб-страниц для определения в них сходных или различных элементов. Например, со ссылкой на Фиг. 3, анализ веб-страниц 302 и 304 обнаруживает, что эти две страницы имеют ряд сходных элементов, включая (но не ограничиваясь) три пространственных вида и видео фотокамеры, а также общие текстовые поля, например, наименование товара, наименование производителя, отзывы покупателей, цена по каталогу, описание, которое включает в себя цвет, номер модели, размер объектива, общие размеры и цифровой зум. В одном из вариантов осуществления макет этих элементов веб-страниц 302 и 304 может различаться, но это может быть неважно, так как анализатор 220 данных элементов веб-страниц анализирует сходства содержимого этих веб-страниц (например, текст), а не группировку документов веб-страницы. В другом примере анализатор 220 данных элементов веб-страниц может также сравнивать группировку веб-страниц 302 и 304 с помощью, например, сравнения разных типов тегов и их соответствующих признаков, например, тег таблицы, тег формы, тег ввода, тег стиля и т.д., которые определяют структуру веб-страницы.
[0044] В одном из вариантов осуществления анализатор 220 данных элементов веб-страниц может использовать простые регулярные выражения для сравнения и идентификации сходных элементов текста в двух или более веб-страницах 302 и 304. В общем случае регулярные выражения могут относиться к шаблонам для конкретизации и распознавания текстовых строк во время обработки слабоструктурированного или неструктурированного текста. Регулярные выражения могут быть использованы для гибкого сравнивания, поиска на основе шаблонов и фильтрации на основе шаблонов. В процедуре регулярные выражения могут быть использованы для поиска и сравнивания данных как функции предварительно определенного шаблона или набора шаблонов. В связи с этим шаблоны могут использовать конкретный синтаксис, с помощью которого конкретные символы или строки выбираются из основного текста. Более конкретно, выражения могут содержать в себе константы и операторы, которые указывают на наборы строк и процедур в этих наборах, соответственно. С использованием конкретного синтаксиса регулярных выражений или других шаблонов языка может быть осуществлено улучшенное сравнение текстовых шаблонов.
[0045] Анализатор 220 данных элементов веб-страниц (со ссылкой на Фиг. 2) может осуществлять сравнение текстовых шаблонов, используя регулярные выражения с помощью «движка» регулярных выражений (не показан) для предоставления сравнения текстовых шаблонов как функции регулярного выражения ввода. Такой «движок» регулярных выражений может быть либо текст-ориентированным, либо ориентированным на регулярные выражения, причем первый является детерминированным конечным автоматом (DFA), а последний - недетерминированным конечным автоматом (NFA). В любом из этих случаев «движок» регулярных выражений может получать, извлекать или получать иным образом в качестве ввода регулярное выражение и строку текстовых данных (указанных, например, с помощью HTML), для которых надо идентифицировать совпадения. Регулярные выражения могут содержать множество обычных символов и операторов, которые описывают набор из одной или нескольких строк в виде выражения или шаблона в обработке текста ввода. В качестве примера, текст ввода - "цифровой зум", а шаблону соответствует "зум". В этом случае «движок» регулярных выражений может искать строку символ за символом (например, "ц", "и", "ф", "р", "о", "в", "о", "й", "з", "у", "м"), пока не найдет первую букву "з". Затем «движок» регулярных выражений будет искать остальные буквы "ум", чтобы было полной совпадение с шаблоном.
[0046] Анализируемые строки символов могут быть отправлены анализатору строк, который реализован как анализатор 220 данных элементов веб-страниц или иной модуль, реализуемый процессором 216 сервера 210 приложений. В одном из вариантов осуществления анализатор строк может автоматически идентифицировать большинство общих префиксов и суффиксов, например, в эквивалентных или соответствующих рядах текста веб-страниц 302 и 304, благодаря их повторяющемуся присутствую в статистически значимой части группы строк с символами. Более конкретно, в ответ на получение ряда различных строк символов анализатор 220 данных элементов веб-страниц может анализировать каждую индивидуальную текстовую строку для определения того, располагается ли уникальная подстрока символов в начале и/или в конце строки и появляется ли она с частотой, которая достаточно статистически значима в сравнении с задаваемым пользователем численным измерением, что позволяет считать эту уникальную подстроку заранее подготовленной последовательностью символов префикса и суффикса, а не случайной последовательностью символов.
[0047] В одном из вариантов осуществления анализатор 220 данных элементов веб-страниц может извлекать текстовые элементы (например, строки текста) из одного и того же блока эталонных веб-страниц (например, страниц 302 и 304), и создавать для них простые регулярные выражения так, чтобы Х% текста соответствовало выражениям. Например, Х% может быть указано как 90%. В одном из вариантов осуществления простое регулярное выражение может быть использовано для идентификации сходных элементов следующим образом: анализатор 220 данных элементов веб-страниц берет два набора строк текста и ищет в них самый большой общий префикс, самый большой общий суффикс и самую большую общую подстроку: например, "размер объектива фотоаппарата" или подстроку "размер объектива", или подстроку "объектив". Таким образом, конкретное положение этих элементов может совместно указывать строку букв, образующих регулярное выражение, например "********" (главное слово "объектив" из 8 букв) или и “***********” - слово "фотоаппарат". В общем случае выражение может выглядеть как "********" (объектив) И "******" (размер) И “***********” (фотоаппарат). В текущем примере И (AND) (логический оператор конъюнкции) является логическим оператором, означающим, что слова "объектив", "размер" и "фотоаппарат" могут находиться рядом в любой последовательности. Альтернативно, анализатор 220 данных элементов веб-страниц может найти только два слова из выражения (допустим, "объектив" и "размер"). В этом конкретном случае анализатор 220 данных элементов веб-страниц может решить, что элемент веб-страницы отвечает выражению, хоть и без одного слова.
[0048] В другом варианте осуществления, когда префикс, суффикс и подстрока оказываются слишком короткими для создания рабочего и эффективного регулярного выражения, данный набор подстрок может быть проанализирован анализатором 220 данных элементов веб-страниц для определения классов символов, содержащихся в строке. Например, классы символов могут включать в себя буквы одного или нескольких известных языков (например, английского или русского), цифры, доступные для печати символы американского стандартного кода обмена информацией ("ASCII"), некоторые символы юникода (Unicode) (которые, например, могут быть закодированы в формате преобразования юникода "UTF-8") и/или символы, которые могут присутствовать в URL (например, буквенно-цифровые символы), служебные символы (например, “;”, “/”, “?”, “:”, “@”, “=”, “&” “%”) и специальные символы (например, "$", "+", "!", "*"). Определив классы символов, которые содержатся в текстовых строках, анализатор 220 данных элементов веб-страниц может определить шаблон общих элементов текста как выражение, например, "сначала от 3 до 12 идут строчные символы на английском, затем символы пунктуации, а потом от 7 до 9 - цифры).
[0049] В другом варианте осуществления анализатор 220 данных элементов веб-страниц может определить простое регулярное выражение следующим образом. Анализатор 220 данных элементов веб-страниц может извлечь элементы одного и того же блока из эталонных веб-страниц и извлечь численную информацию из блока. Например, даты объявления о появлении товара или даты выпуска товара на рынок. В первом блоке может быть дата (например, год объявления о появлении товара) "1999", а во втором - дата выпуска товара на рынок "2017". Анализатор 220 данных элементов веб-страниц может создать регулярное выражение {4} [0-9], которое означает, что четыре цифры от нуля до девяти располагаются подряд. Альтернативно анализатор 220 данных элементов веб-страниц может создать регулярное выражение {2} (19⎜20)[0-9], которое означает, что могут присутствовать наборы цифр, причем первый - это либо "19", либо "20", и за ним идут две цифры от нуля до девяти.
[0050] В одном из вариантов осуществления анализатор 220 данных элементов веб-страниц передает информацию об HTML-элементах в предварительно подтвержденных эталонных веб-страницах генератору 222 правил и генератору 224 шаблонов. Генератор 224 шаблонов выполнен с возможностью создавать набор шаблонов проверки для конкретной категории веб-страниц, которые содержат список, например, в основном сходных (т.е. общих), различных или одинаковых элементов с вставленным в них динамическим и изменяемым содержимым. Набор шаблонов может включать в себя один или более шаблонов. Шаблон может быть реализован как XML-подобный файл. Таким образом, например, один набор шаблонов проверки, созданный из предварительно подтвержденных эталонных веб-страниц 302 и 304, которые связаны с категорией "фотоаппараты", может включать в себя следующие общие текстовые элементы: наименование товара, наименование производителя, отзывы покупателей, цену по каталогу, описание, цвет, номер модели, размер объектива фотоаппарата, общие размеры и цифровой зум. Кроме того, может быть создан другой набор шаблонов проверки, который включает в себя идентификаторы изображений трех видов фотоаппарата в пространстве и видео фотоаппарата. Таким образом, любая проверенная веб-страница такой же категории должна иметь по меньшей мере те же самые текстовые элементы и, в одном из вариантов осуществления, вставленные в них изображения и видео.
[0051] В одном из вариантов осуществления генератор 222 правил выполнен с возможностью создавать наборы правил проверки, указывающие на логические, контекстуальные и/или пространственные отношения между элементами шаблонов веб-страниц, а также соответствие элементов. Набор правил может включать в себя одно или более правило. Правила могут быть реализованы с использованием условных выражений (например, утверждения "если/то"), с использованием, например, XML, Java, JavaScript или других языков программирования. В одном варианте осуществления один набор правил проверки может конкретизировать логические или контекстуальные отношения между элементами веб-страницы. Так, например, со ссылкой на Фиг. 3, элемент "описание фотоаппарата 1" веб-страницы 302 должен включать в себя по меньшей мере элементы "цвет", "номер модели", "размер объектива фотоаппарата", "общие размеры" и "цифровой зум". В другом варианте осуществления другой набор правил проверки может определить должен ли конкретный элемент веб-страницы быть представлен на веб-странице (например, поисковая панель). В другом варианте осуществления другой набор правил может определить, что группа элементов веб-страниц связана и должна быть представлена на каждой странице рядом (например, поисковая панель и "о товаре"). В другом варианте осуществления другой набор правил может определять, что два или более элемента веб-страницы не могут быть показаны на одной веб-странице (т.е. они друг друга исключают).
[0052] В одном из вариантов осуществления созданный набор правил и шаблонов передается верификатору 226 веб-страниц, который использует правила и шаблоны для проверки соответствия и стабильности других веб-страниц той же самой категории, например, недавно добавленные веб-страницы или недавно обновленные веб-страницы (например, веб-страницы с обновленным содержимым). Сначала верификатор 226 веб-страниц может идентифицировать категорию веб-страниц, которые должны быть проверены, с помощью, например, анализа URL проверяемой веб-страницы. Так, если URL проверяемой веб-страницы выглядит как "market.yandex.ru/search/goods/cameras/camera3.htm", то верификатор 226 веб-страниц может определить, что веб-страница связана с категорией цифровых фотоаппаратов и для проверки этой веб-страницы должен быть использован подходящий набор правил и шаблонов проверки. Во время проверки этой веб-страницы верификатор 226 веб-страниц может проверить соответствие элементов веб-страницы с набором правил и шаблонов проверки. В частности, верификатор 226 веб-страниц может анализировать HTML-код веб-страницы, идентифицировать текстовые элементы, содержащиеся в нем, и сравнивать идентифицированные текстовые элементы с теми, что хранятся в связанных шаблонах проверки. В одном из вариантов осуществления простые регулярные выражения могут быть использованы для сравнения текстовых элементов веб-страницы с информацией, которая содержится в шаблоне проверки. Кроме того, верификатор 226 веб-страниц может применять связанные правила проверки для подтверждения логических взаимоотношений между элементами проверяемой веб-страницы. Такое сравнение может быть осуществлено с выбранным пороговым значением (например, различие Х%) или набором порогов (например, один или более верхних порогов и нижних порогов, указывающих разные наборы значений/интервалов). В одном из вариантов осуществления отсутствие или небольшое различие (например, <5%) между элементами проверяемой веб-страницы и элементами набора шаблонов проверки может привести к тому, что верификатор 226 веб-страниц может пометить веб-страницу как "подтвержденную". Однако, если вебстраница не прошла процесс подтверждения из-за, например, большого различия (например, >5%) между элементами текста проверяемой веб-страницы и элементами набора шаблонов проверки, или из-за нарушения некоторых логических или контекстуальных взаимоотношений между текстовыми элементами, требуемыми правилами проверки, то верификатор 226 веб-страниц может отправить веб-страницу на проверку человеку, который выполняет функции аналитика.
[0053] В одном из вариантов осуществления созданные наборы правил и шаблонов проверки могут быть сохранены в локальной базе(ах) данных 212 сервера 210 приложений. Альтернативно при горизонтальной структуре сервер внутренних баз данных и связанная с ним база данных 228 могут применяться для предоставления возможности записи, хранения и извлечения созданных правил и шаблонов. В одном из вариантов осуществления, как показано на Фиг. 2, сервер внутренних баз данных и связанная с ним база данных 228 могут реализовать менеджер 230 правил, менеджер 232 шаблонов и опциональный модуль 234 элементов данных веб-страниц для эффективной группировки созданных правил и шаблонов проверки и релевантных элементов данных веб-страниц, полученных от сервера 210 приложений с использованием любых подходящих структур данных, например, реляционных, объектоориентированных, операционных, NoSQL баз данных. В случае системы реляционных баз данных менеджер 230 правил может хранить и управлять полученными правилами с использованием таблиц; каждое правило может быть уникально идентифицировано составным идентификатором. Часть таких составных идентификаторов может идентифицировать конкретную таблицу в базе данных 228, с которой связано правило. Соответственно, когда идентификатор правила привлекается извне по отношению к базе данных, например, в рамках API-кода более высокого уровня, связанная таблица для этого правила может быть легко определена из самого идентификатора. Это дает возможность осуществлять в процедурах извлечения эффективный доступ к желаемому правилу из таблицы, в которой оно находится. Кроме того, знание исходной таблицы для правила может предоставить возможность легко отслеживать и изучать иную информацию, связанную с правилом (например, на основе знания различных таблиц в базе данных и типов данных, которые в них содержатся). И менеджер 232 шаблонов, и опциональный модуль 234 элементов данных веб-страниц могут управлять информацией, которая хранится в них, сходным образом.
[0054] В одном из вариантов осуществления созданные наборы правил и шаблонов могут быть связаны с разными категориями продуктов/услуг/товаров для обеспечения быстрого поиска и извлечения подходящих правил и шаблонов проверки менеджером 232 шаблонов и менеджером 230 правил во время проверки и подтверждения веб-страниц. Например, для веб-сайта торговли, на котором осуществляется продажа различных товаров, один набор правил и шаблонов может быть связан с "цифровыми фотоаппаратами", а другой набор правил и шаблонов проверки может быть связан с категорией веб-страниц "лазерные принтеры". Поэтому, при получении новой веб-страницы для проверки верификатор 226 веб-страниц определяет их категорию и запрашивает менеджер 232 шаблонов и менеджер 230 правил предоставить правила и шаблоны проверки, связанные с этой категорией. Менеджер 232 шаблонов и менеджер 230 правил извлекает из базы данных 228 полные наборы правил и шаблонов проверки, связанные с этой категорией продуктов, и возвращает их верификатору 226 веб-страниц. Поэтому, в этом варианте осуществления настоящего технического решения наборы правил и шаблонов могут быть сгруппированы и сохранены в базе данных 228 линейно (т.е. один полный набор правил и шаблонов проверки для каждой категории продуктов/товаров/услуг), что может подходить веб-сайтам с несколькими разными категориями веб-страниц и, поэтому, имеющих несколько разных наборов правил и шаблонов.
[0055] Однако для веб-сайтов с большим числом различных категорий и подкатегорий продуктов/товаров/услуг и соответствующих веб-страниц, например, для больших веб-сайтов сетевой торговли (например, Яндекс. Маркет, Amazon и eBay), для предоставления возможности быстрого поиска и извлечения полных наборов правил и шаблонов проверки иерархическое дерево и хранение правил и шаблонов проверки может подходить больше при условии отсутствия множества идентичных копий поднаборов правил и шаблонов проверки для каждой подкатегории веб-страниц. Например, веб-сайт сетевой торговли может иметь структуру иерархического дерева для категорий 400 продуктов, показанную на Фиг. 4. Корневой узел 414 представляет главную категорию товаров "компьютеры и электротовары". Дочерний узел 410 представляет подкатегорию товаров "фотоаппараты и фотокамеры". Дочерний узел 412 представляет подкатегорию товаров "принтеры и сопутствующие товары". "Внучатый" узел 406 представляет подкатегорию "цифровые однообъективные зеркальные фотоаппараты". "Внучатый" узел 408 представляет подкатегорию "записывающие видеокамеры". "Правнучатый" узел 404 представляет подкатегорию "объективы". Узел 402 представляет, например, веб-страницу объективов Nikon 50 mm f/1.4G для цифровых однообъективных зеркальных фотоаппаратов Nikon.
[0056] В одном из вариантов осуществления каждая категория и подкатегория иерархического дерева 400 может иметь различные наборы правил и шаблонов проверки, связанных с ней. Например, главная категория 414 товаров "компьютеры и электротовары" может иметь набор правил 1 / шаблонов 1 проверки, связанный с ней. Набор правил 1 / шаблонов 1 проверки может идентифицировать элементы веб-страницы, общие для всех подкатегорий веб-страниц, включая, например, веб-страницы всех типов принтеров и сопутствующих товаров для принтеров, фотоаппаратов и другого фото- и видеооборудования и сопутствующих товаров. Такие шаблоны могут включать в себя элемент "описание продукта", "цена по каталогу", "отзывы покупателей", и другие текстовые элементы, общие для всех веб-страниц веб-сайта. Далее, две родственных подкатегории 410, 412 товаров, соответственно, "фотоаппараты и фотокамеры" и "принтеры и сопутствующие товары" два разных набора правил 2а / шаблонов 2а проверки и правил 2b / шаблонов 2b проверки, соответственно с ними связанных. Например, набор правил 2а / шаблонов 2а проверки может идентифицировать элементы веб-страницы (и их соответствующие отношения), общие для всех подкатегорий веб-страниц фото- и видеооборудования. Такие шаблоны могут включать в себя, например, элемент "изображение товара", "видео товара", "цвет товара", "сопутствующие товары" и другие текстовые элементы, общие для всех веб-страниц фото- и видеооборудования. Далее, две родственных подкатегории 406, 408 товаров, соответственно, "цифровые однообъективные зеркальные фотоаппараты" и "записывающие видеокамеры" два других разных набора правил 3а / шаблонов 3а проверки и правил 3b / шаблонов 3b проверки, соответственно с ними связанных. Например, набор правил 3а / шаблонов 3а проверки может идентифицировать элементы веб-страницы (и их соответствующие отношения), общие для всех подкатегорий веб-страниц цифровых однообъективных зеркальных фотоаппаратов. Такие шаблоны могут включать в себя, например, элемент "светочувствительная матрица", "размер объектива", "диапазон ISO" и другие текстовые элементы, общие для всех веб-страниц цифровых однообъективных зеркальных фотоаппаратов. И наконец, последняя подкатегория 404 товаров "объективы" может иметь другой набор правил 4 / шаблонов 4 проверки, связанных с ней. Например, набор правил 4 / шаблонов 4 проверки может идентифицировать элементы веб-страницы (и их соответствующие отношения), общие для всех веб-страниц объективов цифровых однообъективных зеркальных фотоаппаратов. Такие шаблоны могут включать в себя, например, элемент "тип байонета", "размер объектива", "фокусное расстояние" и "минимальное расстояние фокусировки" и другие текстовые элементы, общие для всех веб-страниц объективов цифровых однообъективных зеркальных фотоаппаратов. Таким образом, в одном примере, полный набор шаблонов и правил проверки для проверки веб-страницы 402 будет включать в себя все поднаборы шаблонов и правил из всех материнских категорий товаров, включая набор правил 1 и шаблонов 1, набор правил 1 и шаблонов 1, набор правил 2а и шаблонов 2а, набор правил 3а и шаблонов 3а, набор правил 4 и шаблонов 4. Следует отметить, что в случае конфликта между двумя или более элементами дочерних и материнских шаблонов (например, элемент шаблона 3а несовместим с другим элементом шаблона 2а при определенных условиях), может быть создано подходящее правило 2а (или 3а) для исключения несовместимого элемента(ов) из полного набора шаблонов узла (веб-страницы) 402.
[0057] Вышеописанное иерархическое дерево наборов правил и шаблонов проверки увеличивает универсальность правил и шаблонов проверки управляющей системы (например, сервера баз данных 228, менеджера 230 правил и менеджера 232 шаблонов), а также минимизирует требования к хранению данных, поскольку иерархическое/распределенное хранение наборов правил и шаблонов минимизирует дублирование наборов правил и шаблонов, общих для все категорий веб-страниц.
[0058] В одном из вариантов осуществления вышеописанное иерархическое дерево наборов правил и шаблонов проверки может быть использовано для проверки веб-страниц следующим образом. Со ссылками на Фиг. 2-4, сначала верификатор 226 веб-страниц может идентифицировать категорию веб-страниц, которые должны быть проверены, с помощью, например, анализа URL проверяемой веб-страницы. Затем, если URL проверяемой веб-страницы выглядит как "market.yanclex.ru/search/goods/cameras/SLRcamera3.htm", то верификатор 226 веб-страниц может определить, что веб-страница связана с категорией цифровых однообъективных зеркальных фотоаппаратов, и для проверки этой веб-страницы должен быть использован подходящие наборы шаблонов и правил проверки. Верификатор 226 веб-страниц запрашивает от менеджера 230 правил и менеджера 232 шаблонов подходящие наборы правил и шаблонов для категории цифровых однообъективных зеркальных фотоаппаратов. Менеджер 230 правил и/или менеджер 232 шаблонов может идентифицировать в иерархическом дереве 400 наборов правил и шаблонов узел 406, связанный с подкатегорией "цифровых однообъективных зеркальных фотоаппаратов" и извлечь набор правил 3а и шаблонов 3а проверки, которые в нем содержатся. Менеджер 230 правил и/или менеджер 232 шаблонов может затем "пройти" соединенные узлы, начиная с узла 406, к материнскому узлу 410 и к корневому узлу 414, и извлечь все наборы правил и шаблонов проверки, связанные с "пройденными" узлами, включая набор правил 2а и шаблонов 2а проверки и набор правил 1 и шаблонов 1 проверки. Менеджер 230 правил и/или менеджер 232 шаблонов затем возвращает извлеченный полный набор правил 1, 2а и 3а проверки и полный набор шаблонов 1, 2а и 3а проверки верификатору 226 веб-страниц. Верификатор 226 веб-страниц может, в свою очередь, проанализировать HTML-код проверяемых веб-страниц, идентифицировать текстовые элементы, которые в нем содержатся и проверить совпадение идентифицированных текстовых элементов с полными наборами правил и шаблонов проверки, полученных от менеджера 230 правил и/или менеджера 232 шаблонов. В одном из вариантов осуществления верификатор 226 веб-страниц может быть использован для сравнения текстовых элементов веб-страницы с информацией, которая содержится в наборах правил и шаблонов проверки. Кроме того, верификатор 226 веб-страниц может применять связанные правила проверки для подтверждения логических взаимоотношений между элементами проверяемой вебстраницы. Такое сравнение может быть осуществлено с выбранным пороговым значением (например, различие Х%) или набором порогов (например, один или более верхних порогов и нижних порогов, указывающих разные наборы значений/интервалов). В одном из вариантов осуществления отсутствие или небольшое различие (например, <5%) между элементами проверяемой веб-страницы и элементов набора шаблонов проверки может привести к тому, что верификатор 226 веб-страниц может пометить веб-страницу как "подтвержденную". Однако, если веб-страница не прошла процесс подтверждения из-за, например, большого различия (например, >5%) между элементами текста проверяемой веб-страницы и элементами набора шаблонов проверки, или из-за нарушения некоторых логических или контекстуальных взаимоотношений между текстовыми элементами, требуемыми правилами проверки, то верификатор 226 веб-страниц может отправить веб-страницу на проверку человеку, который выполняет функции аналитика.
[0059] На Фиг. 5 изображен пример способа проверки веб-страниц в соответствии с вариантом осуществления настоящего технического решения. Способ 500 может быть реализован с помощью систем 100 и 200, представленных на Фиг. 1 и 2. На этапе 502 способ 500 может включать в себя получение, например, процессором сервера 210 приложений на Фиг. 2 двух или более эталонных веб-страниц, каждая из которых содержит множество элементов веб-страниц HTML. На этапе 504 способ 500 может включать в себя анализ элементов HTML двух или более эталонных веб-страниц для идентификации сходства и взаимоотношений между анализируемыми элементами. На этапе 506 способ 500 может включать в себя создание набора шаблонов проверки, определяющего по меньшей мере множество элементов, общих для двух или более эталонных веб-страниц. На этапе 508 способ 500 может включать в себя создание набора правил проверки, определяющих по меньшей мере логические взаимоотношения между элементами HTML каждой эталонной веб-страницы. На этапе 510 способ 500 может включать в себя подтверждение соответствия проверяемой веб-страницы набору шаблонов проверки и набору правил проверки.
[0060] На Фиг. 6 изображен пример способа проверки веб-страниц в соответствии с другим вариантом осуществления настоящего технического решения. Способ 600 может быть реализован с помощью систем 100 и 200, представленных на Фиг. 1 и 2. На этапе 602 способ 600 может включать в себя идентификацию категории проверяемой веб-страницы. На этапе 604 способ 600 может включать в себя идентификацию набора правил проверки и набора шаблонов проверки, связанных с категорией проверяемой вебстраницы. На этапе 606 способ 600 может включать в себя идентификацию в иерархическом дереве множество узлов, причем каждый узел связан с набором правил проверки и набором шаблонов проверки, а по меньшей мере один набор правил проверки и набор шаблонов проверки связан с категорией проверяемой веб-страницы. На этапе 608 способ 600 может включать в себя "обход" иерархического дерева от идентифицированного узла до корневого узла и идентификацию наборов правил проверки и наборов шаблонов проверки, связанных с каждым "пройденным" узлом. На этапе 610 способ 600 может включать в себя извлечение множества идентифицированных наборов правил проверки и наборов шаблонов проверки, связанных с каждым "пройденным" узлом для создания полного набора правил проверки и шаблонов проверки. На этапе 612 способ 600 может включать в себя использование полного набора правил проверки и набора шаблонов проверки для подтверждения соответствия проверяемой веб-страницы.
[0061] На Фиг. 7 представлен один из вариантов осуществления компьютерной системы 5, которая может быть использована для реализации описанных систем и способов проверки веб-страниц. Компьютерная система 5 может включать в себя (без введения ограничений) сервер (например, сервер 210) приложений, веб-сервер, персональный компьютер, ноутбук, настольный компьютер, смартфон или другой тип устройства обработки данных. Как показано, компьютерная система 5 может включать в себя один или несколько аппаратных процессоров 15, память 20, один или несколько жестких дисков 30, оптических приводов 35, последовательных портов 40, графическую карту 45, звуковую карту 50 и сетевую(ые) карту(ы) 55, соединенную с системной шиной 10. Системная шина 10 может представлять собой шинную структуру любого типа, который включает в себя шину памяти, контроллер памяти, периферическую шину и локальную шину, использующую любой из множества известных шинных архитектур. Процессор 15 может включать в себя одно или несколько процессоров Intel® Core 2 Quad 2.33 ГГц или другой тип микропроцессоров.
[0062] Системная память 20 может включать в себя постоянную память (ПЗУ) 21 и оперативную память (ОЗУ) 23. Память 20 может быть реализована как динамическое ОЗУ, стираемое программируемое ПЗУ, электрически стираемое программируемое ПЗУ, флэш-память или любая другая архитектура памяти. ПЗУ 21 хранит базовую систему ввода/вывода 22 (BIOS), содержащую основные процедуры, которые помогают передавать информацию между модулями компьютерной системы 5, например, во время запуска. ОЗУ 23 хранит операционную систему 24 (ОС), например, Windows® 7 Professional или другой тип операционной системы, который отвечает за управление и координацию процессов и распределения аппаратных ресурсов в компьютерной системе 5. Память 20 также хранит приложения и программы 25. Память 20 также сохраняет различные данные 26 этапа исполнения, используемые программами 25.
[0063] Компьютерная система 5 может дополнительно включать в себя жесткий(е) диск(и) 30, например SATA HDD, и оптический(е) привод(ы) 35 для чтения или записи съемного оптического диска, например CD-ROM, DVD-ROM или другого оптического носителя. Диски 30 и 35 и связанные с ними машиночитаемые носители обеспечивают энергонезависимое хранение машиночитаемых инструкций, структур данных, приложений и программных модулей/подпроцедур, которые реализуют описанные здесь алгоритмы и способы. Несмотря на то, что примерная компьютерная система 5 использует магнитные и оптические диски, специалисты в данной области техники оценят, что в альтернативных вариантах осуществления компьютерной системы 5 также могут быть использованы другие типы машиночитаемых носителей, которые способные хранить данные, доступные компьютерной системе 5, например, магнитные кассеты, флэш-карты памяти, цифровые видеодиски, ОЗУ, ПЗУ, стираемое программируемое ПЗУ и другие типы памяти.
[0064] Компьютерная система 5 дополнительно включает в себя множество последовательных портов 40, например, универсальную последовательную шину (USB), для подключения устройств(а) 75 ввода данных, таких как клавиатура, мышь, сенсорная панель и прочие. Последовательные порты 40 также могут быть использованы для подключения устройств(а) 80 вывода данных, таких как принтер, сканер и другие, а также других периферийных устройств(а) 85, например, внешних устройств хранения данных и т.п. Система 5 также может включать в себя видеокарту 45, например nVidia® GeForce® GT 240М или другую видеокарту, для взаимодействия с экраном 60 или другим устройством воспроизведения видео, например, сенсорным экраном. Система 5 также может включать в себя звуковую карту 50 для воспроизведения звука через внутренние или внешние динамики 65. Кроме того, система 5 может включать в себя сетевую(ые) карту(ы) 55, такие как Ethernet, WiFi, GSM, Bluetooth или другой проводной, беспроводной или сотовый сетевой интерфейса для подключения компьютерной системы 5 к сети 70, например, к сети интернет.
[0065] В различных вариантах осуществления, системы и способы, описанные здесь, могут быть реализованы на аппаратном обеспечении, прикладном программном обеспечении, системном программном обеспечении или любой из их комбинаций. При реализации в виде прикладного программного обеспечения, способы могут быть сохранены в виде одной или нескольких инструкций, или кода на постоянном машиночитаемом носителе. Машиночитаемый носитель включает в себя хранилище данных. В качестве примера, а не ограничения, подобный машиночитаемый носитель может представлять собой ОЗУ, ПЗУ, электрически стираемое программируемое ПЗУ, флэш-память или любой другой тип электрического, магнитного или оптического носителя, или любой другой носитель, который может быть использован для переноса или хранения желаемого программного кода в форме инструкций или структур данных, к которым может обращаться процессор компьютера общего назначения.
[0066] Для ясности стоит отметить, что здесь описаны не все обычные признаки вариантов осуществления. Следует иметь в виду, что при модификации какого-либо фактического варианта осуществления настоящего технического решения, необходимо принять ряд специфичных для варианта осуществления решений для достижения конкретных целей разработчика, и эти конкретные цели будут отличаться для различных вариантов осуществления и для различных разработчиков. Следует иметь в виду, что подобная разработка может быть сложной и затратной по времени, но, тем не менее, не будет представлять сложности для опытных специалистов в данной области техники, обладающих преимуществом от прочтения настоящего описания.
[0067] Кроме того, следует иметь в виду, что фразеология и терминология используется здесь в целях описания, а не ограничения, таким образом, терминология или фразеология настоящего описания должна интерпретироваться специалистами в данной области техники с учетом представленных здесь указаний и руководства в сочетании со знаниями специалистов в соответственной(ых) области(ях) техники. Более того, ни одному термину в описании или формуле не следует приписывать особого или специального смысла, если явно не указано иное.
[0068] Различные описанные здесь варианты осуществления охватывают эквиваленты известных модулей, указанных в данном описании в целях иллюстрации. Кроме того, несмотря на представленные и описанные варианты осуществления и приложения, специалистам в данной области техники, обладающим преимуществом от прочтения настоящего описания, будет очевидно, что возможна реализация многих других вышеописанных модификаций без отступления от представленной здесь концепции настоящего технического решения.
Изобретение относится к способам и системам для проверки веб-страниц. Техническим результатом является расширение арсенала технических средств проверки веб-страниц. В способе проверки веб-страниц получают эталонные веб-страницы, причем каждая веб-страница содержит множество элементов веб-страницы. Анализируют элементы веб-страницы эталонных веб-страниц для идентификации сходства и взаимоотношений между элементами веб-страниц. Создают набор шаблонов проверки, идентифицирующих множество элементов, общих для эталонных веб-страниц. Создают набор правил проверки, определяющих логические взаимоотношения между элементами веб-страницы каждой эталонной веб-страницы. Подтверждают соответствие проверяемой веб-страницы набору шаблонов проверки и набору правил проверки. 3 н. и 17 з.п. ф-лы, 7 ил.
1. Компьютерный способ проверки веб-страниц, способ содержит:
получение двух или более эталонных веб-страниц, причем каждая веб-страница содержит множество элементов веб-страницы;
анализ процессором элементов веб-страницы двух или более эталонных веб-страниц для идентификации сходства и взаимоотношений между элементами веб-страниц;
создание процессором набора шаблонов проверки, идентифицирующих по меньшей мере множество элементов, множество элементов общее для двух или более эталонных веб-страниц;
создание процессором набора правил проверки, определяющих по меньшей мере логические взаимоотношения между элементами веб-страницы каждой эталонной веб-страницы; и
подтверждение процессором соответствия проверяемой веб-страницы набору шаблонов проверки и набору правил проверки.
2. Способ по п. 1, в котором анализ процессором элементов веб-страницы двух или более эталонных веб-страниц для идентификации сходства и взаимоотношений между элементами веб-страниц содержит:
создание одного или нескольких регулярных выражений для одного или нескольких элементов веб-страниц; и
использование регулярных выражений для идентификации сходных элементов в двух или более эталонных веб-страницах.
3. Способ по п. 2, в котором регулярное выражение содержит множество символов и операторов для определения набора одной или нескольких строк в виде выражения или шаблона.
4. Способ по п. 3, в котором регулярное выражение содержит самый длинный общий префикс, самый длинный общий суффикс и самую длинную общую подстроку текстового контента элемента веб-страницы.
5. Способ по п. 2, в котором регулярное выражение выполнено с возможностью сравнивать выбранный процент текстового контента элемента веб-страницы.
6. Способ по п. 1, в котором дополнительно выполняют:
идентификацию категории двух и более проверяемых веб-страниц; и
связывание созданного набора правил проверки и набора шаблонов проверки с категорией.
7. Способ по п. 1, в котором подтверждение соответствия проверяемой веб-страницы набору шаблонов проверки и набору правил проверки содержит:
идентификацию категории проверяемой веб-страницы;
идентификацию набора правил проверки и набора шаблонов проверки, связанных с категорией проверяемой веб-страницы; и
применение набора правил проверки и набора шаблонов проверки к проверяемой веб-странице.
8. Способ по п. 7, в котором для идентификации набора правил проверки и набора шаблонов проверки, связанных с категорией проверяемой веб-страницы, выполняют:
идентификацию в иерархическом дереве множества узлов, причем каждый узел связан с набором правил проверки и набором шаблонов проверки, а по меньшей мере один набор правил проверки и набор шаблонов проверки связан с категорией проверяемой веб-страницы;
"обход" иерархического дерева от идентифицированного узла до корневого узла и идентификацию наборов правил проверки и наборов шаблонов проверки, связанных с каждым "пройденным" узлом;
извлечение множества идентифицированных наборов правил проверки и наборов шаблонов проверки, связанных с каждым "пройденным" узлом, для создания полного набора правил проверки и шаблонов проверки; и
использование полного набора правил проверки и набора шаблонов проверки для подтверждения соответствия проверяемой веб-страницы.
9. Система для проверки веб-страниц, содержащая:
по меньшей мере один процессор, выполненный с возможностью:
получать две или более эталонные веб-страницы, причем каждая веб-страница содержит множество элементов веб-страницы;
анализировать элементы веб-страницы двух или более эталонных веб-страниц для идентификации сходства и взаимоотношений между элементами веб-страниц;
создавать набор шаблонов проверки, идентифицирующих по меньшей мере множество элементов, множество элементов общее для двух или более эталонных веб-страниц;
создавать набор правил проверки, определяющих по меньшей мере логические взаимоотношения между элементами веб-страницы каждой эталонной веб-страницы; и
выполнять подтверждение соответствия проверяемой веб-страницы набору шаблонов проверки и набору правил проверки.
10. Система по п. 9, в которой процессор выполнен с дополнительной возможностью:
создавать одно или несколько регулярных выражений для одного или нескольких элементов веб-страниц; и
использовать регулярное выражение для идентификации сходных элементов в двух или более эталонных веб-страницах.
11. Система по п. 10, в которой регулярное выражение содержит множество символов и операторов для определения набора одной или нескольких строк в виде выражения или шаблона.
12. Система по п. 11, в которой регулярное выражение содержит самый длинный общий префикс, самый длинный общий суффикс и самую длинную общую подстроку текстового содержимого элемента веб-страницы.
13. Система по п. 10, в которой регулярное выражение выполнено с возможностью сравнивать выбранный процент текстового содержимого элемента веб-страницы.
14. Система по п. 9, в которой процессор выполнен с дополнительной возможностью:
идентифицировать категории двух и более проверяемых веб-страниц; и
связывать созданный набор правил проверки и набор шаблонов проверки с категорией.
15. Система по п. 9, в которой процессор выполнен с дополнительной возможностью:
идентифицировать категорию проверяемой веб-страницы;
идентифицировать набор правил проверки и набор шаблонов проверки, связанные с категорией проверяемой веб-страницы; и
применять набор правил проверки и набор шаблонов проверки к проверяемой веб-странице.
16. Система по п. 15, в которой идентификация набора правил проверки и набора шаблонов проверки, связанных с категорией проверяемой веб-страницы, включает:
идентификацию в иерархическом дереве множества узлов, причем каждый узел связан с набором правил проверки и набором шаблонов проверки, а по меньшей мере один набор правил проверки и набор шаблонов проверки связан с категорией проверяемой веб-страницы;
"обход" иерархического дерева от идентифицированного узла до корневого узла и идентификацию наборов правил проверки и наборов шаблонов проверки, связанных с каждым "пройденным" узлом;
извлечение множества идентифицированных наборов правил проверки и наборов шаблонов проверки, связанных с каждым "пройденным" узлом для создания полного набора правил проверки и шаблонов проверки; и
использование полного набора правил проверки и набора шаблонов проверки для подтверждения соответствия проверяемой веб-страницы.
17. Постоянный машиночитаемый носитель, содержащий выполняемые компьютером инструкции для проверки веб-страниц, включающие в себя инструкции для:
получения двух или более эталонных веб-страниц, причем каждая веб-страница содержит множество элементов веб-страницы;
анализа элементов веб-страницы двух или более эталонных веб-страниц для идентификации сходства и взаимоотношений между элементами веб-страниц;
создания набора шаблонов проверки, идентифицирующих по меньшей мере множество элементов, множество элементов общее для двух или более эталонных веб-страниц;
создания набора правил проверки, определяющих по меньшей мере логические взаимоотношения между элементами веб-страницы каждой эталонной веб-страницы; и
подтверждения соответствия проверяемой веб-страницы набору шаблонов проверки и набору правил проверки.
18. Носитель по п. 17, в котором выполняемые компьютером инструкции для проверки веб-страниц включают в себя инструкции для:
создания одного или нескольких регулярных выражений для одного или нескольких элементов веб-страниц; и
использования регулярных выражений для идентификации сходных элементов в двух или более эталонных веб-страницах.
19. Носитель по п. 17, в котором выполняемые компьютером инструкции для проверки веб-страниц включают в себя инструкции для:
идентификации категории проверяемой веб-страницы;
идентификации набора правил проверки и набора шаблонов проверки, связанных с категорией проверяемой веб-страницы; и
применения набора правил проверки и набора шаблонов проверки к проверяемой веб-странице.
20. Носитель по п. 19, в котором выполняемые компьютером инструкции для проверки веб-страниц включают в себя инструкции для:
идентификации в иерархическом дереве множества узлов, причем каждый узел связан с набором правил проверки и набором шаблонов проверки, а по меньшей мере один набор правил проверки и набор шаблонов проверки связан с категорией проверяемой веб-страницы;
"обхода" иерархического дерева от идентифицированного узла до корневого узла и идентификацию наборов правил проверки и наборов шаблонов проверки, связанных с каждым "пройденным" узлом;
извлечения множества идентифицированных наборов правил проверки и наборов шаблонов проверки, связанных с каждым "пройденным" узлом для создания полного набора правил проверки и шаблонов проверки; и
использования полного набора правил проверки и набора шаблонов проверки для подтверждения соответствия проверяемой веб-страницы.
CN 104021185 A, 03.09.2014 | |||
Печь-кухня, могущая работать, как самостоятельно, так и в комбинации с разного рода нагревательными приборами | 1921 |
|
SU10A1 |
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек | 1923 |
|
SU2007A1 |
US 6360235 B1, 19.03.2002 | |||
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
СПОСОБ ПРОВЕРКИ ВЕБ-СТРАНИЦ НА СОДЕРЖАНИЕ В НИХ ЦЕЛЕВОГО АУДИО И/ИЛИ ВИДЕО (AV) КОНТЕНТА РЕАЛЬНОГО ВРЕМЕНИ | 2013 |
|
RU2530671C1 |
Авторы
Даты
2017-10-02—Публикация
2015-05-06—Подача