作者tumc (HIHIHI)
看板Python
标题[问题] BeautifulSoup的观念问题?
时间Wed Jul 15 09:54:44 2009
看完了BeautifulSoup的文档,也可理解里面的例子
但自己要用时,出现的结果跟预期的不太一样,我可能是哪些地方有误解,
盼有能者能帮我开悟一下
html=
"""
<table style="BORDER-COLLAPSE: collapse" width="100%" border="1">
<tbody>
<tr>
<td valign="center" align="left" width="125" bgcolor="#f2f3f1" height="25">
不选我
</td>
<td valign="center" align="left" width="547" height="25">
<p style="MARGIN-LEFT: 10px">
选我
</p>
</td>
</tr>
<tr>
</tr>
</tbody>
</table>
"""
soup = BeautifulSoup(html)
table = soup.table
Q1:
print table.tr.nextSibling.previous.string ==> 结果出现 "选我"
这个符合我的预期,但用这样子觉得很逊,是找不到方法下才用的
Q2:
print table.tr.td.nextSibling.name ==>结果出现 'NavigableString' object has no attribute 'name'
原本我是这样子使用,但结果跟我预期完全不同,为什麽这个无法选到呢? 疑惑? NavigableString不是应该是标签内text的部份吗?
Q3:
print table.tr.contents[3].p.string ==> 结果出现 "选我"
我原本预期应该是 table.tr.contents[1].p.string , 为什麽又与我预期的不同?
以上问题,百思不解
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.124.185.18
1F:推 nio127:1.有更快的写法 要看你的目的是针对元素还是文字内容 07/20 17:21
2F:→ nio127:2跟3 你忽略了 换行。换行也是一个元素(NavigableString) 07/20 17:22