我正在尝试获取html文档中所有href的列表。我正在使用Beautiful Soap来解析我的html文件。
print soup.body.find_all('a', attrs={'data-tag':'Homepage Library'})[0]
我得到的结果是:
<a class="m0 vl" data-tag="Homepage Library" href="/video?lang=pl&format=lite&v=AZpftzD9jVs" title="abc">
text
</a>
我只对href =“”部分感兴趣。所以我希望ResultSet只返回href的值。
我不确定如何扩展此查询,因此它返回href部分。
答案 0 :(得分:4)
使用attrs:
links = soup.body.find_all('a', attrs={'data-tag':'Homepage Library'})
print [link.attrs['href'] for link in links]
或者,通过将其视为字典来直接从元素中获取属性:
links = soup.body.find_all('a', attrs={'data-tag':'Homepage Library'})
print [link['href'] for link in links]
样本:
from bs4 import BeautifulSoup
page = """<body>
<a href="link1">text1</a>
<a href="link2">text2</a>
<a href="link3">text3</a>
<a href="link4">text4</a>
</body>"""
soup = BeautifulSoup(page)
links = soup.body.find_all('a')
print [link.attrs['href'] for link in links]
打印
['link1', 'link2', 'link3', 'link4']
希望有所帮助。
答案 1 :(得分:1)
最后这对我有用:
soup.body.find_all('a', attrs={'data-tag':'Homepage Library'}).attrs["href"]
答案 2 :(得分:0)
for link in soup.find_all('a', attrs={'data-tag':'Homepage Library'}):
print(link.get('href'))