擅长:python、mysql、java
<p><em>这个:</em></p>
<pre><code>print soup.a.b.c.d.name
</code></pre>
<p><em>仅输出d.</em></p>
<p>这是因为<code>name</code>与标记对象的内置<code>name</code>属性冲突。根据<a href="http://www.crummy.com/software/BeautifulSoup/documentation.html#Using%20tag%20names%20as%20members" rel="nofollow">using tags names as members</a>上的文档,可以使用<code>soup.a.b.c.d.nameTag</code>。</p>
<p>属性错误在其他答案中得到了很好的解释。如果要提取整个文档中的每个<code>(d, e, name)</code>三元组,不管<code>d</code>标记出现在哪里,都可以执行以下操作:</p>
<pre><code>soup = BeautifulStoneSoup(doc)
for d in soup.findAll('d'):
print (d, d.e, d.nameTag)
</code></pre>