0

我已经开始使用 Jython,因为它似乎是一种优秀的语言,并且到目前为止已经证明是这样。

我正在使用 dom4j 从磁盘上的一堆 HTML 文件的 DOM 中操作和检索数据。我编写了下面的脚本来检查使用 Xpath 的H1标签和抓取文本的 DOM,如果H1标签不存在于 DOM 中,它会搜索标题标签并从中获取文本。

我对 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"

如果有人可以提供帮助,那就太好了。干杯

4

2 回答 2

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")
于 2008-10-23T20:21:07.107 回答
0

看起来它会完美地工作,只有另一件事是。我会将值传递给数据库,并根据找到的内容将其放入相应的列中。

如果它是一个 H1 标签,它将把它放在 H1 列中,如果它是一个标题标签,它将被放在标题列中。

有没有办法确定也发现了什么标签?这有意义吗?

于 2008-10-23T20:35:27.483 回答