在BS的评论对象的数据,以及评论的对象仅仅是一种特殊类型的NavigableString的,你需要做的是:
查找包含该信息的刺痛
使用BeautifulSoup转换字符串对象BS
提取数据从BS对象
代码:
import re
table_string = soup.find(string=re.compile('div_team_misc'))
这将返回一个包含表的HTML代码的刺痛。
table = BeautifulSoup(table_string, 'lxml')
使用的刺痛从对象
for tr in table.find_all('tr', class_=False):
s = [td.string for td in tr('td')]
print(s)
出构建BS对象,并提取数据:
['17', '13', '2.17', '-0.51', '1.66', '106.9', '104.7', '96.5', '.300', '.319', '.493', '10.9', '20.5', '.228', '.501', '11.6', '79.6', '.148', 'Spectrum Center', '269,471']
['10', '9', '8', '24', '10', '17', '5', '15', '4', '11', '22', '1', '27', '5', '12', '28', '3', '1', None, '15']
更多评论:
markup = "<b><!--Hey, buddy. Want to buy a used parser?--></b>"
soup = BeautifulSoup(markup)
comment = soup.b.string
Comment对象只是一个特殊类型的NavigableString,BS会从中提取字符串,我们不需要更改或替换任何html。
comment
# u'Hey, buddy. Want to buy a used parser'
在此基础上,我们可以用它代替re
纯BS提取评论
table_string = soup.find(id="all_team_misc").contents[-2]
如果你有什么发现所有的表字符串,你可以这样做:
from bs4 import Commnet
tables = soup.find_all(string=lambda text:isinstance(text,Comment) and str(text).startswith(' \n'))
请将该图片直接包含在您的问题中,而不是随时可能会被破解的链接。 – ettanany
此页面包含HTML中的所有数据,但隐藏为注释并使用JavaScript显示。但是你可以用'BeautifuSoup'来找到这个注释,删除'<! - '和' - >'并用'BeautifuSoup'使用结果来获取数据。我认为这个问题在之前的一些问题中得到了解决。 – furas