Поиск элементов в HTML
Чтение HTML кода из URL- https://www.mathworks.com/help/textanalytics
использование webread
функция.
url = "https://www.mathworks.com/help/textanalytics";
code = webread(url);
Проанализируйте HTML кода с помощью htmlTree
.
tree = htmlTree(code);
Найти все гиперссылки в HTML можно используя findElement
. Гиперссылки являются узлами с именем элемента "A"
.
selector = "A";
subtrees = findElement(tree,selector);
Просмотрите первые несколько поддеревьев.
subtrees(1:10)
ans = 10×1 htmlTree: <A class="skip_link sr-only" href="#content_container">Skip to content</A> <A href="https://www.mathworks.com?s_tid=gn_logo" class="svg_link navbar-brand"><IMG src="/images/responsive/global/pic-header-mathworks-logo.svg" class="mw_logo" alt="MathWorks"/></A> <A href="https://www.mathworks.com/products.html?s_tid=gn_ps">Products</A> <A href="https://www.mathworks.com/solutions.html?s_tid=gn_sol">Solutions</A> <A href="https://www.mathworks.com/academia.html?s_tid=gn_acad">Academia</A> <A href="https://www.mathworks.com/support.html?s_tid=gn_supp">Support</A> <A href="https://www.mathworks.com/matlabcentral/?s_tid=gn_mlc">Community</A> <A href="https://www.mathworks.com/company/events.html?s_tid=gn_ev">Events</A> <A href="https://www.mathworks.com/products/get-matlab.html?s_tid=gn_getml">Get MATLAB</A> <A href="https://www.mathworks.com?s_tid=gn_logo" class="svg_link pull-left"><IMG src="/images/responsive/global/pic-header-mathworks-logo.svg" class="mw_logo" alt="MathWorks"/></A>
Извлечь текст из поддеревьев можно используя extractHTMLText
. Результат содержит текст ссылки из каждой ссылки на странице.
str = extractHTMLText(subtrees); str(1:10)
ans = 10×1 string
"Skip to content"
""
"Products"
"Solutions"
"Academia"
"Support"
"Community"
"Events"
"Get MATLAB"
""
tree
- HTMLhtmlTree
объектHTML дерево, заданное как скаляр htmlTree
объект.
selector
- селектор CSSСелектор CSS, заданный как строковый скаляр или вектор символов. Для получения дополнительной информации см. раздел «Выбор CSS».
subtrees
- Соответствие HTMLhtmlTree
массивСовпадающие HTML, возвращенные как htmlTree
массив.
Типичный элемент HTML содержит следующие компоненты:
Имя элемента - Имя тега HTML. Имя элемента соответствует Name
свойство HTML.
Атрибуты - Дополнительная информация о теге. Атрибуты HTML имеют форму
, где name
= «value
"
и name
обозначить имя и значение атрибута соответственно. Атрибуты появляются в открывающем HTML. Чтобы получить значения атрибутов из HTML, используйте value
getAttribute
.
Содержимое - Содержимое элемента. Содержимое отображается между открытием и закрытием HTML. Содержимым могут быть текстовые данные или вложенные элементы HTML. Чтобы извлечь текст из htmlTree
объект, использование extractHTMLText
. Чтобы получить вложенный HTML элементов htmlTree
объект, используйте Children
свойство.
Например, элемент HTML <a href="https://www.mathworks.com">Home</a>
содержит следующие компоненты:
Компонент | Значение | Описание | |
---|---|---|---|
Имя элемента | a | Элемент является гиперссылкой | |
Признак | Имя атрибута | href | Ссылка на гиперссылку |
Значение атрибута | "https://www.mathworks.com" | Значение ссылки гиперссылки | |
Содержимое | Home | Текст для отображения |
Селекторы CSS задают шаблоны, соответствующие элементам дерева.
В этой таблице показаны некоторые примеры, показывающие, как извлечь различные элементы HTML из HTML-дерева:
Задача | Селектор CSS | Пример |
---|---|---|
Найти все абзацы (<p> ) элементы. | "p" | findElement(tree,"p") |
Найти все абзацы (<p> ) и элемент списка (<li> ) элементы. | "p,li" | findElement(tree,"p,li") |
Найти все абзацы (<p> ) элементы, которые находятся внутри таблицы (<table> ) элементы. | "table p" | findElement(tree,"table p") |
Найти всю гиперссылку (<a> ) элементы с атрибутом ссылки гиперссылки (href ) значения, заканчивающиеся ".pdf" . | "a[href$="".pdf""]" | findElement(tree,"a[href$="".pdf""]") |
Найти все абзацы (<p> ) элементы, которые являются первым дочерним элементом их родительского элемента. | "p:first-child" | findElement(tr,"p:first-child") |
Найти все абзацы (<p> ) элементы, которые являются элементом первого абзаца их родительского элемента. | "p:first-of-type" | findElement(tr,"p:first-of-type") |
Найти все акценты (<em> ) элементы, в которых родительский элемент является абзацем (<p> ) элемент. | "p > em" | findElement(tr,"p > em") |
Найти все абзацы (<p> ) элементы, появляющиеся сразу после заголовка 1 (<h1> ) элемент | "h1 + p" | findElement(tr,"h1 + p") |
Найти все пустые элементы. | ":empty" | findElement(tr,":empty") |
Найти все непустые метки (<label> ) элементы. | "label:not(:empty)" | findElement(tr,"label:not(:empty)") |
findElement
функция поддерживает весь уровень CSS 3, за исключением селекторов ":lang"
, ":checked"
, ":link"
, ":active"
, ":hover"
, ":focus"
, ":target"
, ":enabled"
, и ":disabled"
.
Для получения дополнительной информации о селекторах CSS см. [1].
[1] Ссылка на селектор CSS. https://www.w3schools.com/cssref/css_selectors.asp
extractFileText
| extractHTMLText
| getAttribute
| htmlTree
| ismissing
| readPDFFormData
| tokenizedDocument
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.