1 回答
TA贡献1799条经验 获得超8个赞
实例字典中没有缺少属性。让我们看一下元素的表示形式:
<a class="title" href="/">Dotan Cohen</a>
我们有一个标记名(a
),属性(title
和href
,以及值),还有文本内容(Dotan Cohen
)。这些都出现在实例属性您列出:
name: a
attrs: {'href': '/', 'class': ['title']}
contents: ['Dotan Cohen']
contents
是此元素的直接后代的列表;只有一个文本对象(NavigableString
实例使用与常规字符串类似的表示形式)。
您可以使用vars()
内置的API函数列出实例属性。我知道您pprint()
已经在使用;而不是循环播放.items()
,只需使用pprint(vars(a))
并保存您自己输入的完整循环即可;作为奖励pprint()
,首先对键进行排序:
>>> pprint(vars(a))
{'attrs': {'class': ['title'], 'href': '/'},
'can_be_empty_element': False,
'contents': [u'Dotan Cohen'],
'hidden': False,
'name': 'a',
'namespace': None,
'next_element': u'Dotan Cohen',
'next_sibling': None,
'parent': <h1><a class="title" href="/">Dotan Cohen</a></h1>,
'parser_class': <class 'bs4.BeautifulSoup'>,
'prefix': None,
'previous_element': <h1><a class="title" href="/">Dotan Cohen</a></h1>,
'previous_sibling': None}
您正在查看的字符串是由.__repr__()元素类的钩子构建的:
>>> a.__repr__()
'<a class="title" href="/">Dotan Cohen</a>'
通常repr()在对象上使用时调用:
>>> repr(a)
'<a class="title" href="/">Dotan Cohen</a>'
该字符串由您在对象属性中看到的已解析元素信息构建而成。
添加回答
举报