Я пытаюсь извлечь каждый тег HTML, включая соответствие регулярному выражению. Например, предположим, что я хочу, чтобы каждый тег, включая строку «имя» и у меня есть HTML-документ, как это:Как получить HTML-тег на основе регулярного выражения
<html>
<head>
<title>This tag includes 'name', so it should be retrieved</title>
</head>
<body>
<h1 class="name">This is also a tag to be retrieved</h1>
<h2>Generic h2 tag</h2>
</body>
</html>
Вероятно, я должен попробовать регулярное выражение, чтобы поймать каждый матч между открытием и закрытием "<>"
, однако, я хотел бы иметь возможность пройти синтаксическое дерево на основе этих совпадений, поэтому я могу получить братьев и сестер или родителей или «nextElements». В приведенном выше примере это составляет <head>*</head>
или, может быть, <h2>*</h2>
, как только я знаю, что они родители или братья и сестры тега, содержащего совпадение.
Я попробовал BeautifulSoap, но мне кажется, что это полезно, когда вы уже знаете, какой тег вы ищете или на основе его содержимого. В этом случае я хочу сначала получить совпадение, взять это совпадение в качестве отправной точки, а затем перейти к дереву, как это делает BeautifulSoap и другие синтаксические анализаторы HTML.
Предложения?
Использование Regex на Html трудно. Я не предлагаю вам идти по этому пути. Что вы пытаетесь сделать с Html? См. Эту статью: http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html – AdamV
Я не думаю, что вы действительно, хотя через это полностью. Как насчет: '' или '
My имя is beerbajay
'? Что вы ожидаете, нужно вернуть? – beerbajay@beerbajay Нет, это нормально, если получить этот тег ввода (поскольку он содержит «имя». Очевидно, что мой реальный пример не использует «имя» в качестве соответствия. –