我正在尝试使用以下内容获取“我的家庭住址”的内容,但出现了 AttributeError:
address = soup.find(text="Address:")
print address.nextSibling
这是我的 HTML:
<td><b>Address:</b></td>
<td>My home address</td>
向下导航
td
标签并拉取内容的好方法是什么? 最佳答案
问题是您找到了 NavigableString
,而不是 <td>
。同样 nextSibling
会找到下一个 NavigableString
或 Tag
所以即使你有 <td>
它也不会像你期望的那样工作。
这就是你想要的:
address = soup.find(text="Address:")
b_tag = address.parent
td_tag = b_tag.parent
next_td_tag = td_tag.findNext('td')
print next_td_tag.contents[0]
或者更简洁:
print soup.find(text="Address:").parent.parent.findNext('td').contents[0]
其实你可以这样做
print soup.find(text="Address:").findNext('td').contents[0]
由于
findNext
只是一遍又一遍地调用 next
,而 next
会找到下一个重复解析的元素,直到匹配为止。关于python - Beautifulsoup - nextSibling,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5999747/