python soup findall 第几个元素_python – 如何在BeautifulSoup中获取所有父标签的列表?...

假设我有这样的结构:

如果我指向书签,那么只提取所有文件夹行的命令是什么?

例如,

bookmarks = soup.findAll('bookmark')

然后beautifulsoupcommand(书签[0])将返回:

[,]

我也想知道结尾标签何时出现.有任何想法吗?

提前致谢!

解决方法:

以下是我的尝试:

>>> from BeautifulSoup import BeautifulSoup

>>> html = """

"""

>>> soup = BeautifulSoup(html)

>>> bookmarks = soup.findAll('bookmark')

>>> [p.get('name') for p in bookmarks[0].findAllPrevious(name = 'folder')]

[u'folder2', u'folder1']

与@ eumiro的答案的主要区别在于我使用的是findAllPrevious而不是findParents.当我测试@ eumiro的解决方案时,我发现findParents仅返回第一个(立即)父节点,因为父节点和祖父节点的名称相同.

>>> [p.get('name') for p in bookmarks[0].findParents('folder')]

[u'folder2']

>>> [p.get('name') for p in bookmarks[0].findParents()]

[u'folder2', None]

如果父母和祖父母的名字不同,它确实会返回两代父母.

>>> html = """

"""

>>> soup = BeautifulSoup(html)

>>> bookmarks = soup.findAll('bookmark')

>>> [p.get('name') for p in bookmarks[0].findParents()]

[u'folder2', u'folder1', None]

标签:python,xml-parsing,html-parsing,beautifulsoup

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值