2016-08-31 9 views
0

я наткнулся на следующее объяснение:Что такое синтаксический анализ страницы?

  1. Если асинхронный = «асинхронный»: Сценарий выполняется асинхронно с остальной частью страницы (сценарий будет выполняться, пока страница продолжает разбор)
  2. Если асинхронный нет и отложить = «отложить»: сценарий выполняется когда страница закончила разбор
  3. Если ни асинхронном или отложить присутствуют: сценарий забирается и выполняется немедленно, до того, как браузер продолжает разбор страницы

делает разбор просто означает загрузку компонентов страницы, как тексты или изображения и расположение и ....?

ответ

0

В этом контексте означает преобразование исходного кода HTML в узлы DOM, такие как элементы и текст.

Извлечение зависимых ресурсов будет также продолжить, но это в дополнение к разбору.

+0

Что делает выборка? –

+0

@mohsendoraghi - Stackoverflow - не подходящее место, чтобы просить определения общих английских слов. – Quentin

-1

синтаксический анализ в основном для решения (предложения) в его составные части и описания их синтаксических ролей.

Согласно википедии, анализ или синтаксический анализ - это процесс анализа строки символов либо на естественном языке, либо на компьютерных языках в соответствии с правилами формальной грамматики. Термин синтаксический анализ происходит от латинских пар (orationis), что означает часть (речи).

В вашем случае, HTML разборе в основном: принимать в HTML код и извлечение необходимой информации, как заголовок страницы, параграфы страницы, заголовки на странице, ссылки, жирный текст и т.д. Парсеры:

Компьютерная программа, которая анализирует контент, называется парсером. Существует, как правило, 2 вида парсеров:

Разбор по принципу «сверху вниз» - синтаксический анализ сверху вниз можно рассматривать как попытку найти самые левые деривации входного потока путем поиска деревьев разбора с использованием расширения сверху вниз данных формальных правил грамматики. Токены потребляются слева направо. Интеллектуальный выбор используется для обеспечения двусмысленности, расширяя все альтернативные правые стороны правил грамматики.

Разбор партитуры - синтаксический анализатор может начинаться с ввода и пытаться переписать его на символ начала. Интуитивно, парсер пытается найти самые основные элементы, затем элементы, содержащие их, и так далее. LR-парсеры являются примерами анализаторов снизу вверх. Другим термином, используемым для этого типа анализатора, является Shift-Reduce parsing. Несколько примеров парсеры: сверху вниз парсеры:

Recursive descent parser 
LL parser (Left-to-right, Leftmost derivation) 
Earley parser 

Восходящие парсеры:

Внеочередные анализатор Оператор-старшинство анализатор Простой старшинство анализатор BC (ограниченное контекст) разборе LR-анализатор (слева направо, правое порождение) Simple LR (SLR) анализатор LALR анализатор Canonical LR (LR (1)) анализатор РВО анализатор CYK анализатор Рекурсивного восхождение анализатор

Пример парсер:

Вот пример HTML-парсер в питоне:

из HTMLparser импорта HTMLparser

создать подкласс и переопределить методы обработки

class MyHTMLParser(HTMLParser): 
    def handle_starttag(self, tag, attrs): 
     print "Encountered a start tag:", tag 
    def handle_endtag(self, tag): 
     print "Encountered an end tag :", tag 
    def handle_data(self, data): 
     print "Encountered some data :", data 

создать экземпляр синтаксического анализатора и загрузить его HTML

parser = MyHTMLParser() 
parser.feed('<html><head><title>Test</title></head>'<body><h1>Parse me!</h1></body></html>') 

Вот результат:

Encountered a start tag: html 
Encountered a start tag: head 
Encountered a start tag: title 
Encountered some data : Test 
Encountered an end tag : title 
Encountered an end tag : head 
Encountered a start tag: body 
Encountered a start tag: h1 
Encountered some data : Parse me! 
Encountered an end tag : h1 
Encountered an end tag : body 
Encountered an end tag : html 

Ссылки:

https://stackoverflow.com/a/20421508/5326667

1

Синтаксический означает чтение источника HTML. Он читается по строкам (тег по тегу). Большинство браузеров строит DOM и отображает страницу (основной макет и текст) при разборе документа. Когда синтаксический анализатор встречает тег сценария, он приостанавливает разбор (чтение) html до завершения скрипта (или продолжается сразу же, если указан асинхронный или отложенный параметр). После того, как синтаксический анализ завершен (браузер прочитал и интерпретировал всю HTML-страницу), он начинает загружать такие объекты, как изображения.

+0

У меня есть два вопроса. Игнорировать сценарий для вопроса нет. Когда он читает теги HTML, он переводит их сразу на компоненты страницы, такие как текст, или он должен сначала прочитать весь HTML? 2- какой процесс превращает эти показания в фактическую страницу, которую мы видим на мониторе? –

+0

Парсер создает DOM и сразу же начинает рендеринг страницы. Это можно наблюдать при очень медленном подключении к Интернету или скрипте, который выводит html очень медленно. Страница будет отображаться частично, даже если браузер еще не прочитал весь html-документ. – user3336731

+0

Это правда. Я видел в медленном соединении эффекты. Теперь мне кажется, что он читает коды, поскольку они были написаны сверху до кнопки. Например, я видел страницы в медленных соединениях без макета или формата и только некоторые тексты и шрифты , почему это? Это потому, что страница сначала загружает шрифты и фотографии, а затем CSS-макет? есть ли какой-либо порядок для чтения конкретного кода? –

Смежные вопросы