Система, способ и постоянный машиночитаемый носитель для проверки веб-страниц
Иллюстрации
Показать всеИзобретение относится к способам и системам для проверки веб-страниц. Техническим результатом является расширение арсенала технических средств проверки веб-страниц. В способе проверки веб-страниц получают эталонные веб-страницы, причем каждая веб-страница содержит множество элементов веб-страницы. Анализируют элементы веб-страницы эталонных веб-страниц для идентификации сходства и взаимоотношений между элементами веб-страниц. Создают набор шаблонов проверки, идентифицирующих множество элементов, общих для эталонных веб-страниц. Создают набор правил проверки, определяющих логические взаимоотношения между элементами веб-страницы каждой эталонной веб-страницы. Подтверждают соответствие проверяемой веб-страницы набору шаблонов проверки и набору правил проверки. 3 н. и 17 з.п. ф-лы, 7 ил.
Реферат
Область техники, к которой относится изобретение
Настоящее техническое решение относится к способам и системам для проверки веб-страниц.
Уровень техники
[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) может осуществлять сравнение текстовых шаблонов, используя регулярные выражения с помощью «движка» регулярных выражений (не показан) для предоставления сравнения текстовых шаблонов как функции регулярного выражения ввода. Такой «движок» регулярных