加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用Python中的BeautifulSoup获取直接父标记

发布时间:2020-12-16 23:37:14 所属栏目:Python 来源:网络整理
导读:我已经研究过这个问题,但还没有看到解决这个问题的实际解决方案.我正在使用带有 Python的BeautifulSoup,我正在寻找的是从页面获取所有图像标记,循环遍历每个标记并检查每个标记以查看它的直接父标记是否为锚标记. 这是一些伪代码: html = BeautifulSoup(res
我已经研究过这个问题,但还没有看到解决这个问题的实际解决方案.我正在使用带有 Python的BeautifulSoup,我正在寻找的是从页面获取所有图像标记,循环遍历每个标记并检查每个标记以查看它的直接父标记是否为锚标记.

这是一些伪代码:

html = BeautifulSoup(responseHtml)

for image in html.findAll('img'):
    if (image.parent.name == 'a'):
         image.hasParent = image.parent.link

有什么想法吗?

解决方法

你需要检查 parentname
for img in soup.find_all('img'):
    if img.parent.name == 'a':
        print "Parent is a link"

演示:

>>> from bs4 import BeautifulSoup
>>> 
>>> data = """
... <body>
...     <a href="google.com"><img src="image.png"/></a>
... </body>
... """
>>> soup = BeautifulSoup(data)
>>> img = soup.img
>>> 
>>> img.parent.name
a

您还可以使用CSS selector检索具有直接父级的img标记:

soup.select('a > img')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读