如何使用BeautifulSoup找出HTML中两个元素的距离
目标是找出两个标签之间的距离,比如第一个外部链接的属性和
html = '<title>stackoverflow</title><a href="https://stackoverflow.com">test</a>'
soup = BeautifulSoup(html)
ext_link = soup.find('a',href=re.compile("^https?:",re.IGNORECASE))
title = soup.title
dist = abs_distance_between_tags(ext_link,title)
print dist
30
我该怎么做才能不使用正则表达式呢?
需要注意的是,这些标签的顺序可能会不同,并且可能会有多个匹配项(虽然我们只用find()方法取第一个)。
我在BeautifulSoup中找不到一个方法可以返回匹配项在HTML中的位置。
2 个回答
1
Beautiful Soup 4 现在支持 Tag.sourceline
和 Tag.sourcepos
这两个功能。
参考链接: https://beautiful-soup-4.readthedocs.io/en/latest/#line-numbers