我已经开始使用Jython,因为它似乎是一种优秀的语言,并且已经证明是迄今为止。
我正在使用dom4j来操作和检索我在磁盘上的一堆HTML文件的DOM中的数据。我编写了下面的脚本来检查使用Xpath将DOM强加到 H1 标签并抓取文本,如果DOM中没有 H1 标记,则会搜索< strong> title 标记并从中获取文本。
我对Jython很新,但我确信有办法比以下方法更优雅地执行所需的任务。如果我正确地想到这一点,是否有人可以告诉我更好的方法它?
elemHolder = dom.createXPath('//xhtml:h1')
elemHolder.setNamespaceURIs(map)
elem = elemHolder.selectSingleNode(dom)
if elem != None:
h1 = elem.getText()
else:
elemHolder = dom.createXPath('//xhtml:title')
elemHolder.setNamespaceURIs(map)
elem = elemHolder.selectSingleNode(dom)
if elem != None:
title = elem.getText()
else:
title = "Page does not contain a H1 or title tag"
如果有人能提供帮助,那就太好了。干杯
答案 0 :(得分:2)
这个怎么样(顺便说一句,我并不认为对Python有太多了解,但这看起来是显而易见的第一步):
for path in ('//xhtml:h1', '//xhtml:title'):
elemHolder = dom.createXPath(path)
elemHolder.namespaceURIs = map
elem = elemHolder.selectSingleNode(dom)
if elem is not None:
return (elem.localName, elem.text)
return (None, "Page does not contain h1 or title tag")
答案 1 :(得分:0)
看起来它会完美运作,只有其他的东西。我将把值传递给数据库,并根据在相应列中找到它的内容。
如果它是H1标签,它会把它放在H1栏中,如果是标题标签,它会被放在标题栏中。
有没有办法确定哪些标签也被发现?这有意义吗?