Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

Парсинг је анализа и тумачење структуре документа. Процес рашчлањивања може укључивати издвајање одређених елемената, атрибута или података из документа и проверу да ли је документ добро форматиран уз поштовање одређених стандарда или правила. Парсинг се углавном користи за издвајање података са веб страница или манипулацију структуром веб страница пре него што их прикаже корисницима.

Го обезбеђује пакете за рад са документима, укључујући ХТМЛ и КСМЛ формате који се популарно користе на веб страницама. Тхе хтмл пакет пружа функције за токенизацију и рашчлањивање ХТМЛ-а.

ХТМЛ пакет

Тхе хтмл пакет обезбеђује токенизатор и парсер компатибилан са ХТМЛ5 за рашчлањивање и манипулисање ХТМЛ документима, обилажење стабла рашчлањивања и манипулацију структуром стабла. Тхе хтмл пакет је уграђени пакет Го-ове стандардне библиотеке.

Једна од главних карактеристика

хтмл пакет је Парсе функција која може рашчланити ХТМЛ документе и вратити основни чвор стабла рашчлањивања, одакле можете користити функције попут Прво дете и НектСиблинг за навигацију по стаблу и издвајање информација из документа. Пакет такође обезбеђује ПарсеФрагмент функција за рашчлањивање фрагмената ХТМЛ докумената.

Тхе ЕсцапеСтринг функција је згодна за избегавање специјалних знакова у стринговима ради сигурнијег укључивања у ХТМЛ; можете користити ову функцију за спречавање скриптовање на више локација (КССС) напада конвертовањем специјалних знакова у њихове одговарајуће ХТМЛ ентитете.

Да бисте започели са хтмл пакет, можете да увезете пакет у своје датотеке Го пројекта.

увоз"голанг.орг/к/нет/хтмл"

Тхе хтмл пакет не пружа никакве функције за генерисање ХТМЛ-а. Уместо тога, можете користити пакет хтмл/темплате, који нуди скуп функција за генерисање ХТМЛ шаблона. Тхе хтмл/темплате пакет пружа функцију шаблон. ХТМЛЕсцапе за писање есцапе верзија ХТМЛ-а писцу одговора.

Тхе хтмл/темплате пакет је такође део стандардне библиотеке, а ево како можете да увезете пакет.

увоз"хтмл/темплате"

Тхе хтмл пакет је најпопуларнији пакет шаблона у Го екосистему и подржава различите операције и типове података.

Рашчлањивање ХТМЛ-а у Го

Тхе Парсе функција на хтмл пакет помаже при рашчлањивању ХТМЛ текста и докумената. Тхе Парсе функција преузима ан ио. Реадер инстанце јер је то први аргумент који садржи документ датотеке и *хтмл. Чвор инстанце, која је основни чвор ХТМЛ документа

Ево како можете да користите Парсе функција за рашчлањивање веб странице и враћање свих УРЛ адреса на веб страници.

увоз (
"фмт"
"голанг.орг/к/нет/хтмл"
"нет/хттп"
)

фунцглавни() {
// Пошаљите ХТТП ГЕТ захтев веб страници екампле.цом
респ, ерр := хттп. Добити(" https://www.example.com")
ако ерр != нула {
фмт. Принтлн(„Грешка:“, грешка)
повратак
}
одложити одн. Тело. Близу()

// Користите хтмл пакет да рашчланите тело одговора из захтева
доц, ерр := хтмл. Парсе (одг. тело)
ако ерр != нула {
фмт. Принтлн(„Грешка:“, грешка)
повратак
}


// Пронађите и одштампајте све везе на веб страници
вар везе []низ
вар линк фунц(*хтмл. чвор)
линк = фунц(н *хтмл. чвор) {
ако н. Унесите == хтмл. ЕлементНоде && н. Подаци == "а" {
за _, а := домет н. Аттр {
ако а. Кеи == "хреф" {
// додаје нови унос везе када се атрибут подудара
линкови = додати(линкови, а. Вал)
}
}
}

// прелази преко ХТМЛ-а веб странице од првог подређеног чвора
за ц := н. Прво дете; ц != нула; ц = ц. НектСиблинг {
веза (ц)
}
}
линк (доц)

// петље кроз пресек веза
за _, л := домет линкови {
фмт. Принтлн("Линк:", л)
}
}

Тхе главни функција шаље ХТТП ГЕТ захтев веб локацији са Добити функција на хттп пакет и преузима тело одговора странице. Тхе Парсе функција на хтмл пакет анализира тело одговора и враћа ХТМЛ документ.

Тхе везе променљива је део низова који ће садржати УРЛ адресе са веб странице. Тхе линк функција преузима референцу показивача на Чвор метод за хтмл пакет, и Кључ метода инстанце атрибута из чвора враћа податке садржане у наведеном атрибуту (у овом случају, хреф). Функција прелази документ са НектСиблинг метода из Прво дете чвор за штампање сваке УРЛ адресе на веб страници. Коначно, фор петља штампа све УРЛ-ове из везе кришка.

Ево резултата операције.

Генерисање ХТМЛ-а у Го

Тхе хтмл/темплате пакет пружа скуп функција за безбедно и ефикасно рашчлањивање и извршавање ХТМЛ шаблона. Пакет је дизајниран за употребу у комбинацији са хтмл пакет, који обезбеђује функције за рашчлањивање и манипулисање ХТМЛ-ом.

Можете да генеришете ХТМЛ за приказивање на страни сервера помоћу хтмл/темплате пакет. Генерисање ХТМЛ-а је згодно за многе случајеве употребе као што су слање е-поште, приказивање на страни сервера и још много тога. Можете да користите уграђене Го типове података као што су мапе и структуре за интеракцију и манипулисање ХТМЛ-ом ваше веб странице.

Мораћете да разумете Иди на синтаксу ХТМЛ шаблона да бисте успешно генерисали ХТМЛ са хтмл/темплате пакет.

увоз (
"хтмл/темплате"
"ос"
)

тип веб страна струцт {
Наслов низ
Наслов низ
Текст низ
}

фунцглавни() {
// Дефинишите шаблон
тмпл := `



{{.Титле}}


{{.Наслов}}


{{.Тект}}



`

// Дефинишите податке који ће се користити у шаблону
веб := веб страница{
Наслов: „Пример странице“,
Наслов: „Добро дошли на моју веб страницу!“,
Текст: „Ово је почетна страница моје веб странице.“,
}

// Креирајте нови шаблон и анализирајте низ шаблона
т, ерр := шаблон. Нова("веб страна").Парсе (тмпл)
ако ерр != нула {
паника(ерр)
}

// Извршите шаблон и запишите резултат у стдоут
ерр = т. Изврши (ос. стандардни излаз, веб)
ако ерр != нула {
паника(ерр)
}
}

Тхе тмпл променљива садржи ХТМЛ стринг. ХТМЛ стринг користи синтаксу шаблона Го да дефинише наслов странице, ан х1 заглавље и пасус текста. Тхе веб страна струцт дефинише поља података за веб страницу са Наслов, Наслов, и Текст поља.

Тхе Парсе методом Нова функција пакета шаблона креира и анализира нови шаблон са низом шаблона. Тхе Извршити функција нове инстанце шаблона извршава шаблон са подацима из ваше инстанце структуре и враћа резултат на стандардни излаз (у овом случају, штампа резултат на конзоли).

Направите веб апликације помоћу Го

Учење о рашчлањивању и генерисању ХТМЛ-а помоћу Го је један корак у правом смеру ка изградњи софистициранијих веб апликација са Го. Можете да користите оквире као што су Гин и Ецхо и рутере као што су Горилла Мук и Цхи Роутер да бисте изградили серверску страну вашег веба апликација.

Ови пакети су изграђени на нет/хттп пакет (уграђени пакет за интеракцију са ХТТП-ом у Го) и апстраховати сложеност подешавања сервера и рутера у Го-у.