0

python2.6 + htmllib0.99 + bs4

次のコードを実行すると、例外がスローされます

#!/usr/bin/python
# -------_*_ coding: utf-8 _*_

from bs4 import BeautifulSoup
import html5lib    
html  = '''
<html>
<head>
<title> test
</title>
</head>
<body>
<div id="tcp">hello</div>
</body>
</html>
'''
cs = BeautifulSoup(html,"html5lib")
print cs.contents[0].contents[2].contents[1]['id']
main_tag = cs.find('div', id='tcp')

print main_tag.text


####result####

#tcp
#Traceback (most recent call last):
#  File "C:\Users\XXXXXXXX\Desktop\test.py", line 21, in <
#    print main_tag.text
#AttributeError: 'NoneType' object has no attribute 'text'

"<title>" と "test" の間のスペースを削除すると、プログラムは正常に実行されます

4

1 に答える 1

0

これは bs4 の既知のバグです。見る:

https://bugs.launchpad.net/beautifulsoup/+bug/1430633

bs4 が不正なツリーを生成する状況があります。次に、「find」がツリーの最後まで実行され、None が返されます。

于 2015-05-01T22:34:18.157 に答える