WikiDer > Тег суп

Tag soup

В веб-разработка, "тег суп"является уничижительным для синтаксически или структурно неправильного HTML написано для веб-страница. Поскольку веб-браузеры исторически снисходительно относились к синтаксису HTML или структурным ошибкам, на веб-разработчиков не оказывалось особого давления, чтобы они следовали опубликованным стандартам, и поэтому существует необходимость во всех реализациях браузеров обеспечивать механизмы, позволяющие справиться с появлением «супа тегов», принятие и исправление недействительным синтаксис и структура, где это возможно.

Парсер HTML (часть веб-браузер), который способен интерпретировать HTML-подобную разметку, даже если он содержит недопустимый синтаксис или структуру, может называться тег суп парсер. В настоящее время все основные веб-браузеры имеют парсер тегов для интерпретации искаженного HTML.

"Суп из тегов" включает в себя множество распространенных авторских ошибок, например искаженные HTML-теги, неправильно вложен HTML-элементы, и неэкранированный сущности персонажей (особенно амперсанды (&) и знаки «меньше» (<)).

Я использовал этот термин в своих инструкциях в течение многих лет, чтобы охарактеризовать беспорядок угловых скобок, действующих как теги в HTML на страницах, которые принимаются браузерами. Неправильная минимизация, перекрывающиеся конструкции ... все, что выглядит как разметка SGML, но создатель не знал и не соблюдал правила SGML для словаря HTML. По сути, объемный набор текста и разметки. [...] Я никогда нигде не видел определение этого термина.

— Г. Кен Холман, Re: [xml-dev] Что такое Tag Soup?, Список рассылки разработчиков XML, 11 октября 2002 г.

В Служба проверки разметки - это ресурс для авторов веб-страниц, позволяющий избежать создания супа из тегов.

Обзор

«Суп из тегов» - это термин, используемый для очернения различных методов веб-разработки. Некоторые из них (в порядке убывания степени тяжести) включают:

  1. Неправильная разметка где теги неправильно вложены или неправильно закрыты. Например, следующее:
    <п>Это искаженный фрагмент <Эм>HTML.</п></Эм>
  2. Неверная структура где элементы неправильно вложены в соответствии с DTD для документа. Примеры этого включают вложение элемента «ul» непосредственно в другой элемент «ul» для любого из HTML 4.01 или XHTML DTD. Дэн Коннолли цитирует использование заглавие элемент вне голова раздел[1].
  3. Использование закрытых или неопределенных элементов и атрибуты вместо тех, которые определены в рекомендациях W3C. Например, использование Мигающий элемент или Элемент Marquee которые изначально были нестандартными элементами, поддерживаемыми только Netscape и Internet Explorer браузеры соответственно.

Причины и последствия

Неправильная разметка

Неправильная разметка, пожалуй, самая серьезная проблема в веб-разработке. Однако благодаря лучшему образованию и информации и, возможно, с некоторой помощью XHTML, проблема искаженной разметки становится менее распространенной. Браузеры, столкнувшись с искаженной разметкой, должны угадать предполагаемый смысл автора. Они должны вывести закрывающие теги там, где они ожидают, а затем вывести открывающие теги, чтобы они соответствовали другим закрывающим тегам. Интерпретация может заметно отличаться от одного браузера к другому.[2]

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

Неверная структура документа

Недопустимая структура документа здесь означает только использование атрибутов и элементов, которым они не принадлежат. Например, размещение атрибута cite в элементе cite недопустимо, поскольку DTD HTML и XHTML не придают никакого значения этому атрибуту в этом элементе. Точно так же включение элемента «p» в содержимое элемента «em» также недопустимо. С движением к отделению искаженной разметки от недопустимой разметки проблемы с недопустимой разметкой все чаще рассматриваются как менее серьезные. Некоторые начали отстаивать более свободные модели содержимого, которые обеспечивают большую гибкость при создании документов HTML (будь то в HTML или XHTML). Однако использование недопустимой разметки может размыть задуманное автором значение, хотя и не так сильно, как искаженная разметка.

Многие графические веб-редакторы по-прежнему создают недопустимую разметку. Более того, многие профессиональные веб-дизайнеры и авторы мало внимания уделяют вопросам действительности. Неверная разметка часто встречается на многих сайтах во всемирной паутине.

Использование патентованных / снятых с производства элементов

В раннем возрасте Интернета (большая часть 1990-х годов) дизайн официальной спецификации HTML становился все более напряженным по сравнению с желанием дизайнеров гибкости в создании визуально ярких дизайнов. В ответ на это давление производители браузеров в одностороннем порядке добавили в HTML новые проприетарные функции, которые в то время выходили за рамки стандартов. Это означало, что в HTML были проприетарные элементы, которые работали в одних браузерах, но не работали в других.

В некоторой степени решение этой проблемы было замедлено введением W3C новых стандартов, таких как CSS, представленных в 1998 году, которые помогли обеспечить большую гибкость в представлении и макете веб-страниц без необходимости в большом количестве дополнительных элементов HTML. и атрибуты.

Более того, в HTML 4 и XHTML 1 многие элементы были заменены одной семантической конструкцией (например, объект элементы, заменяющие фирменные апплет и вставлять элементы) или не рекомендуются из-за презентабельности (например, элементы "s", "strike" и "u").

Тем не менее, разработчики браузеров продолжали вводить новые элементы в HTML, когда чувствовали необходимость. Некоторые браузеры включают атрибуты tabindex в любой элемент. Разработчики Apple WebKit представил холст элемент, версия которого впоследствии была принята Mozilla.

В 2004 году Apple, Mozilla и Опера основал WHATWG, с целью создания новой версии спецификации HTML, которой будет соответствовать все поведение браузера. Это включало изменение спецификации, если необходимо, чтобы соответствовать существующему консенсусу между различными браузерами.[3]

В холст[4] и вставлять[5] элементы впоследствии были стандартизированы WHATWG. Определенные элементы (включая б, я и маленький), которые ранее считались презентационными и устаревшими, были включены, но определялись независимым от носителя, а не визуальным образом.[6]

Версии спецификации WHATWG были опубликованы W3C так как HTML5.[3]

Развивающиеся спецификации для решения проблемы супа с тегами

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

Каскадные таблицы стилей (CSS)

Каскадные таблицы стилей (CSS) предоставляют механизм для определения представления элементов в документе без изменения структуры разметки документа. До того, как CSS стал обычным явлением, веб-разработчики могли прибегать к некоторой структурно недопустимой разметке для достижения определенных презентационных целей - например, включение элементов уровня блока во встроенные элементы для получения определенного эффекта или использование иногда большого количества <font> и другие специфичные для отображения HTML-теги. CSS использует правила стиля для выполнения этих задач, оставляя разметку более чистой и простой.

XML и XHTML

XHTML это переформулировка языка HTML на основе XML. XHTML был разработан для решения многих проблем, связанных с супом тегов.

XML позволяет синтаксическим анализаторам разделять процесс интерпретации синтаксиса документа и его структуры. В HTML и SGML, синтаксическому анализатору необходимо знать определенные правила об элементах во время синтаксического анализа, например, какие элементы могут содержаться в других элементах и ​​какие элементы неявно закрывают предыдущий элемент. Это связано с тем, что в HTML и SGML закрывающие теги и даже открывающие теги были необязательными для некоторых элементов. Требуя, чтобы все элементы имели явные открывающие и закрывающие теги, синтаксические анализаторы XML могут анализировать документ и создавать дерево документа без какого-либо знания типа документа. Это позволяет синтаксическим анализаторам быть универсальными и очень легкими и отделенными от процесса проверки или интерпретации документа.

Спецификация XML четко определяет, что соответствующий пользовательский агент (например, веб-браузер) не должен принимать документ и не продолжать его анализ, если обнаружена какая-либо синтаксическая ошибка. Таким образом, браузер, интерпретирующий веб-страницу как XHTML, откажется отображать страницу, если обнаружит ошибку формирования. Это может помочь гарантировать, что, когда авторы тестируют код XHTML в соответствующем браузере, они сразу же будут проинформированы о проблемах с искажениями: возможно, это самая серьезная проблема, с которой сталкиваются веб-браузеры. Когда код искажен, намерения автора неоднозначны. Без директив XML HTML-браузеры должны использовать сложные алгоритмы для вывода предполагаемого автором значения в широком диапазоне случаев, когда встречается недопустимый синтаксис.

XML и XHTML представляют концепцию пространств имен. С помощью пространств имен авторы или сообщества авторов могут определять новые элементы и атрибуты с новой семантикой и смешивать их в своих документах XHTML. Пространства имен гарантируют, что имена элементов из различных пространств имен не будут объединены. Например, элемент «таблица» может быть определен в новом пространстве имен с новой семантикой, отличной от элемента «таблица» HTML, и браузер сможет различать эти два элемента. Предоставляя пространства имен, XHTML в сочетании с CSS позволяет сообществам разработчиков легко расширять семантический словарь документов. Это позволяет использовать собственные элементы при условии, что эти элементы могут быть представлены целевой аудитории с помощью полных определений таблиц стилей (включая звуковые / речевые и тактильные стили).

Документы XHTML можно обслуживать в Интернете с помощью тип интернет-СМИ приложение / xhtml + xml или текст / html[7] Текущий Microsoft Internet Explorer версии (6, 7 и 8) не отображают документы XHTML, служащие приложение / xhtml + xml. Бета-версии IE9 кажутся совместимыми. См. Также обсуждение этого вопроса в статье XHTML.

HTML5

HTML5 на данный момент стремится быть наиболее полным решением проблемы супа тегов, оставаясь при этом максимально совместимым с предыдущими и последующими версиями. В отличие от XHTML, который отходит от обратной совместимости и использует подход, согласно которому парсеры должны стать менее терпимыми к плохо сформированной разметке, HTML5 признает, что плохо сформированный код HTML уже существует в больших количествах и, вероятно, будет продолжать использоваться, и считает, что спецификацию следует расширить, чтобы обеспечить максимальную совместимость с таким кодом.

Таким образом, спецификация HTML 5 изменила свое определение синтаксиса HTML, чтобы приспособить общий синтаксис, используемый сегодня, и явно описать, как именно "плохо сформированный код" должен обрабатывать синтаксический анализатор. Обработка плохо сформированного кода теперь имеет место в самой спецификации, что, надеюсь, снижает потребность в будущих анализаторах HTML для реализации дополнительных, выходящих за рамки спецификации мер для работы с кодом, который он не распознает.

Инструменты для исправления тегов супа

  • HTML Tidy - это программный инструмент, доступный для многих платформ, который может исправлять недопустимый синтаксис и наиболее недопустимую структуру документа, преобразовывая HTML-подобный код в HTML или XHTML.
  • Агджорно это надстройка Visual Studio, которая фокусируется на обеспечении соответствия веб-сайтов стандартам
  • ТегСуп - это библиотека Java, которая анализирует HTML, очищает его и доставляет поток SAX события, представляющие правильно сформированный XML (не обязательно действительный XHTML). Этот инструмент используется для обработки файлов JNLP в реализации с открытым исходным кодом JNLP протокол доступен в IcedTea-Web, подпроект Чай со льдом, проект сборки и интеграции OpenJDK.
  • Красивый суп это Python ДОМ-подобный парсер для непонятного HTML / XML[8].
  • tagoup: библиотека для Язык Haskell.

Смотрите также

Заметки

использованная литература

  1. ^ Винер, Дэйв (12 октября 2002 г.). "Что такое Tag Soup?". Новости сценариев. Дэйв Винер. Архивировано из оригинал 26 февраля 2004 г.. Получено 23 ноября 2017. В качестве примера он привел элемент . На самом деле это имеет смысл только в <head> документа, но, очевидно, один или несколько браузеров позволят вам установить заголовок страницы в теле страницы! Это не значит, что земля рушится или небо падает, все может происходить нормально, но делать это там неправильно, и мир стал бы (немного) лучше, если бы браузеры не позволяли этого.</q></cite><span title="ctx_ver = Z39.88-2004 & rft_val_fmt = info% 3Aofi% 2Ffmt% 3Akev% 3Amtx% 3Ajournal & rft.genre = unknown & rft.jtitle = Scripting + News & rft.atitle = What + is + Tag + Soup% 3F.date = 2002-10 & rft. aulast = Winer & rft.aufirst = Dave & rft_id = http% 3A% 2F% 2Fessaysfromexodus.scripting.com% 2FwhatIsTagSoup & rfr_id = info% 3Asid% 2Fen.wikipedia.org% 3ATag + soup" class="Z3988"></span><style data-mw-deduplicate="TemplateStyles:r982806391">.mw-parser-output cite.citation{font-style:inherit}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration{color:#555}.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration span{border-bottom:1px dotted;cursor:help}.mw-parser-output .cs1-ws-icon a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output code.cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;font-size:100%}.mw-parser-output .cs1-visible-error{font-size:100%}.mw-parser-output .cs1-maint{display:none;color:#33aa33;margin-left:0.3em}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration,.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}</style></span></li><li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFHickson2002" class="citation web cs1">Хиксон, Ян (21 ноября 2002 г.). <a rel="nofollow" class="external text" href="http://ln.hixie.ch/?start=1037910467&count=1">"Tag Soup: как UA работают с <x> <y></x></y>"</a><span class="reference-accessdate">. Получено <span class="nowrap">11 сентября</span> 2020</span>.</cite><span title="ctx_ver = Z39.88-2004 & rft_val_fmt = info% 3Aofi% 2Ffmt% 3Akev% 3Amtx% 3Abook & rft.genre = unknown & rft.btitle = Tag + Soup% 3A + How + UAs + handle +% 26lt% 3Bx% 26glt% 3B 26gt% 3B +% 26lt% 3B% 2Fx% 26gt% 3B +% 26lt% 3B% 2Fy% 26gt% 3B & rft.date = 2002-11-21 & rft.aulast = Hickson & rft.aufirst = Ian & rft_id = http% 3A% 2F% 2Fln.hixie. ch% 2F% 3Fstart% 3D1037910467% 26count% 3D1 & rfr_id = info% 3Asid% 2Fen.wikipedia.org% 3ATag + суп" class="Z3988"></span><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r982806391"></span></li><li id="cite_note-whatwghist-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-whatwghist_3-0"><sup><i><b>а</b></i></sup></a> <a href="#cite_ref-whatwghist_3-1"><sup><i><b>б</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFWHATWG" class="citation web cs1">WHATWG. <a rel="nofollow" class="external text" href="https://html.spec.whatwg.org/multipage/introduction.html#history-2">«1.6 История»</a>. <i>Стандарт HTML</i>.</cite><span title="ctx_ver = Z39.88-2004 & rft_val_fmt = info% 3Aofi% 2Ffmt% 3Akev% 3Amtx% 3Ajournal & rft.genre = unknown & rft.jtitle = HTML + Standard & rft.atitle = 1.6 + History & rft.au = WHATWG.sport% 2. whatwg.org% 2Fmultipage% 2Fintroduction.html% 23history-2 & rfr_id = info% 3Asid% 2Fen.wikipedia.org% 3ATag + суп" class="Z3988"></span><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r982806391"></span></li><li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFWHATWG" class="citation web cs1">WHATWG. <a rel="nofollow" class="external text" href="https://html.spec.whatwg.org/multipage/canvas.html">«4.12.5 Элемент холста»</a>. <i>Стандарт HTML</i>.</cite><span title="ctx_ver = Z39.88-2004 & rft_val_fmt = info% 3Aofi% 2Ffmt% 3Akev% 3Amtx% 3Ajournal & rft.genre = unknown & rft.jtitle = HTML + Standard & rft.atitle = 4.12.5 + The + canvas + element & rftG & rft & rft & rft & rft & rft & rft & rft & rft & rft & rft & rft & rft & rft & rft & rft & rft & rft & rft & rft & rft. 2F% 2Fhtml.spec.whatwg.org% 2Fmultipage% 2Fcanvas.html & rfr_id = info% 3Asid% 2Fen.wikipedia.org% 3ATag + суп" class="Z3988"></span><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r982806391"></span></li><li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFWHATWG" class="citation web cs1">WHATWG. <a rel="nofollow" class="external text" href="https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element">«4.8.6 Элемент embed»</a>. <i>Стандарт HTML</i>.</cite><span title="ctx_ver = Z39.88-2004 & rft_val_fmt = info% 3Aofi% 2Ffmt% 3Akev% 3Amtx% 3Ajournal & rft.genre = unknown & rft.jtitle = HTML + Standard & rft.atitle = 4.8.6 + Элемент + embed + & rft.au = WHATWid & rft.au = WHATWid & rft.au = WHATWid = WHATWid & rft.au = WHATWid & rft.au = WHATWid & rft.au = WHATWID 2F% 2Fhtml.spec.whatwg.org% 2Fmultipage% 2Fiframe-embed-object.html% 23the-embed-element & rfr_id = info% 3Asid% 2Fen.wikipedia.org% 3ATag + soup" class="Z3988"></span><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r982806391"></span></li><li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFWHATWG" class="citation web cs1">WHATWG. <a rel="nofollow" class="external text" href="https://wiki.whatwg.org/wiki/FAQ">"ВОПРОСЫ-ОТВЕТЫ"</a>. <i>WHATWG.org</i>.</cite><span title="ctx_ver = Z39.88-2004 & rft_val_fmt = info% 3Aofi% 2Ffmt% 3Akev% 3Amtx% 3Ajournal & rft.genre = unknown & rft.jtitle = WHATWG.org & rft.atitle = FAQ & rft.au = WHATWGWG = https 2Fwiki% 2FFAQ & rfr_id = info% 3Asid% 2Fen.wikipedia.org% 3ATag + суп" class="Z3988"></span><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r982806391"></span></li><li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.w3.org/TR/xhtml1/#guidelines">«XHTML 1.0 - расширяемый язык разметки гипертекста (второе издание) - переформулировка HTML 4 в XML 1.0, приложение C. Рекомендации по совместимости с HTML»</a>. Рекомендация W3C. 1 августа 2002 г. [26 января 2000 г.]<span class="reference-accessdate">. Получено <span class="nowrap">2008-09-13</span></span>. <q>Документы XHTML, которые следуют руководящим принципам, изложенным в Приложении C, «Рекомендации по совместимости с HTML», могут быть помечены типом Интернет-носителя «text / html» [RFC2854], поскольку они совместимы с большинством браузеров HTML. Эти документы, а также любой другой документ, соответствующий этой спецификации, также могут быть помечены типом Интернет-носителя «application / xhtml + xml», как определено в [RFC3236]. Для получения дополнительной информации об использовании типов мультимедиа с XHTML см. Информационное примечание [XHTMLMIME].</q></cite><span title="ctx_ver = Z39.88-2004 & rft_val_fmt = info% 3Aofi% 2Ffmt% 3Akev% 3Amtx% 3Abook & rft.genre = unknown & rft.btitle = XHTML + 1.0 + The + Extensible + HyperText + Markup + Language +% 28Second + + Edition% of + HTML + 4 + in + XML + 1.0% 2C + Appendic + C. + HTML + Compatibility + Guidelines & rft.pub = W3C + Рекомендация & rft.date = 2002-08-01 & rft_id = http% 3A% 2F% 2Fwww.w3.org % 2FTR% 2Fxhtml1% 2F% 23guidelines & rfr_id = info% 3Asid% 2Fen.wikipedia.org% 3ATag + суп" class="Z3988"></span><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r982806391"></span></li><li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite id="CITEREFTagliaferri2017" class="citation web cs1">Тальяферри, Лиза (20 июля 2017 г.). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170902191441/https://www.digitalocean.com/community/tutorials/how-to-scrape-web-pages-with-beautiful-soup-and-python-3">«Как очистить веб-страницы с помощью Beautiful Soup и Python 3»</a>. <i>Учебники по цифровому океану</i>. <a href="/wiki/Digital_Ocean" title="Цифровой океан">Цифровой океан</a>. Архивировано из <a rel="nofollow" class="external text" href="https://www.digitalocean.com/community/tutorials/how-to-scrape-web-pages-with-beautiful-soup-and-python-3">оригинал</a> 2 сентября 2017 г.<span class="reference-accessdate">. Получено <span class="nowrap">23 ноября</span> 2017</span>. <q>В настоящее время доступен как Beautiful Soup 4 и совместим как с Python 2.7, так и с Python 3, Beautiful Soup создает дерево синтаксического анализа из проанализированных документов HTML и XML (включая документы с незамкнутыми тегами или супом тегов и другой искаженной разметкой).</q></cite><span title="ctx_ver = Z39.88-2004 & rft_val_fmt = info% 3Aofi% 2Ffmt% 3Akev% 3Amtx% 3Ajournal & rft.genre = unknown & rft.jtitle = Digital + Ocean + Tutorials & rft.atitle = How + To + Scrape + Web + Pages + with и + Python + 3 & rft.date = 2017-07-20 & rft.aulast = Tagliaferri & rft.aufirst = Lisa & rft_id = https% 3A% 2F% 2Fwww.digitalocean.com% 2Fcommunity% 2Ftutorials% 2Fhow-to-scrape-web-pages-with- beautiful-soup-and-python-3 & rfr_id = info% 3Asid% 2Fen.wikipedia.org% 3ATag + суп" class="Z3988"></span><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r982806391"></span></li></ol></div></div> <p><center><!-- Composite Start --> <div id="M723943ScriptRootC1158761"></div> <script src="https://jsc.mgid.com/w/i/wiki2.wiki.1158761.js" async></script> <!-- Composite End --></center></p> <p><center></center></p> <p><center></center></p> </div> </div> </div> </div> </div> </div> <div id="mw-footer-container"> <div id="mw-footer" class="ts-inner"> <div id="footer-bottom" role="contentinfo"> <div style="text-align: center"> <p> Lizenz für Texte auf dieser Seite: <a href="https://creativecommons.org/licenses/by-sa/3.0/legalcode" style="text-decoration:underline;color:#CCCCFF;">CC-BY-SA 3.0 Unported</a>. </p> <p> <small>Der original-Artikel stammt aus Wikipedia und ist <a href="wiki/Tag_soup" style="text-decoration: underline; color: #CCCCFF;">hier</a> abrufbar. <a href="https://ru.wikipedia.org/w/index.php?action=history&title=Тег суп" style="text-decoration: underline; color: #CCCCFF;">Hier</a> finden Sie Informationen zu den Autoren des Artikels. An Bildern wurden keine Veränderungen vorgenommen - diese werden aber in der Regel wie bei der ursprünglichen Quelle des Artikels verkleinert, d.h. als Vorschaubilder angezeigt. Klicken Sie auf ein Bild für weitere Informationen zum Urheber und zur Lizenz.</small> </p> <p><b><a href="/Impressum">Impressum</a>  -  <a href="/Datenschutz">Datenschutzerklärung</a>  -  <a href="/Urheberrecht">Urheberrecht</a></b></p> </div> <div class="visualClear"></div> </div> </div> </div> </div> </body></html>