0

我有这个小代码,它给了我AttributeError:'NoneType'对象没有属性'group'。

import sys
import re

#def extract_names(filename):

f = open('name.html', 'r')
text = f.read()

match = re.search (r'<hgroup><h1>(\w+)</h1>', text)
second = re.search (r'<li class="hover">Employees: <b>(\d+,\d+)</b></li>', text)  

outf = open('details.txt', 'a')
outf.write(match)
outf.close()

我的意图是读取一个 .HTML 文件以查找<h1>标签值和员工人数并将它们附加到文件中。但由于某种原因,我似乎无法正确处理。非常感谢您的帮助。

4

2 回答 2

6

您正在使用正则表达式,但是将 XML 与此类表达式匹配变得太复杂、太快。不要那样做。

改用 HTML 解析器,Python 有几个可供选择:

后两者也非常优雅地处理格式错误的 HTML,对许多拙劣的网站有很好的理解。

元素树示例:

from xml.etree import ElementTree

tree = ElementTree.parse('filename.html')
for elem in tree.findall('h1'):
    print ElementTree.tostring(elem)
于 2012-09-20T13:15:09.007 回答
1

只是为了完成:您的错误消息只是表明您的正则表达式失败并且没有返回任何内容......

于 2012-09-20T15:35:34.713 回答