<分区>
我听说过 Simple HTML DOM 和 HTML Parser 等 HTML Parser 库。我也听说过包含 HTML 解析的问题。解析 HTML 是什么意思?
<分区>
我听说过 Simple HTML DOM 和 HTML Parser 等 HTML Parser 库。我也听说过包含 HTML 解析的问题。解析 HTML 是什么意思?
最佳答案
与 Spudley 所说的不同,解析基本上是将(一个句子)分解成它的组成部分,并描述它们的句法作用。
根据维基百科,语法分析或句法分析是根据语法规则分析自然语言或计算机语言中的符号字符串的过程正式语法。术语解析来自拉丁语 pars (orationis),意思是词性。
在您的情况下,HTML 解析基本上是:接收 HTML 代码并提取相关信息,例如页面标题、页面中的段落、页面中的标题、链接、粗体文本等。
解析内容的计算机程序称为解析器。一般有两种解析器:
自上而下的解析- 自上而下的解析可以被视为尝试通过使用给定的自上而下扩展搜索解析树来找到输入流的最左边的推导正式的语法规则。 token 从左到右被消耗。包容性选择用于通过扩展语法规则的所有替代右侧来适应歧义。
自下而上的解析 - 解析器可以从输入开始并尝试将其重写为起始符号。直觉上,解析器试图定位最基本的元素,然后是包含这些元素的元素,依此类推。 LR 解析器是自底向上解析器的示例。用于此类解析器的另一个术语是 Shift-Reduce 解析。
这是一个用 python 编写的 HTML 解析器示例:
from HTMLParser import HTMLParser
# create a subclass and override the handler methods
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
# instantiate the parser and fed it some 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
关于html - HTML 解析是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20421316/