我已经研究过这个问题,但还没有看到解决这个问题的实际解决方案.我正在使用带有
Python的BeautifulSoup,我正在寻找的是从页面获取所有图像标记,循环遍历每个标记并检查每个标记以查看它的直接父标记是否为锚标记.
这是一些伪代码:
html = BeautifulSoup(responseHtml) for image in html.findAll('img'): if (image.parent.name == 'a'): image.hasParent = image.parent.link
有什么想法吗?
解决方法
你需要检查
parent
的
name
:
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')