替换类名BeautifulSoup
我正在尝试解析一个HTML文档,想请大家帮帮我。
<tr height="21" style="height:15.75pt">
<td class="style14" height="21" style="height: 15.75pt">
71
</td>
<td class="style14">
Breakeven
</td>
<td class="style10">
The Script
<span style="mso-spacerun:yes">
</span>
</td>
</tr>
我想把
这是我的代码:
search =soup.find('td', class_='style10')
search['class'] = 'style14'
for each in search:
print each.text
有没有办法做到这一点呢?
1 个回答
1
你正在循环遍历一个元素,而这个元素只列出了它的子元素。因为你选择的标签没有包含其他带文本的子元素(<span style="mso-spacerun:yes">
这个元素是空的),所以你什么也看不见。
其实不用循环,直接获取文本就可以了:
print search.text
你改的类并没有在这里出问题。
示例:
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('''\
... <tr height="21" style="height:15.75pt">
... <td class="style14" height="21" style="height: 15.75pt">
... 71
... </td>
... <td class="style14">
... Breakeven
... </td>
... <td class="style10">
... The Script
... <span style="mso-spacerun:yes">
... </span>
... </td>
... </tr>
... ''')
>>> search =soup.find('td', class_='style10')
>>> search['class']
['style10']
>>> search['class'] = 'style14'
>>> search['class']
'style14'
>>> list(search)
[u'\n The Script\n ', <span style="mso-spacerun:yes">
</span>, u'\n']
>>> search.text
u'\n The Script\n \n\n'