如何进一步过滤ResultSet的结果?

2024-04-24 04:41:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一个html文档中得到所有href的列表。我用漂亮的Soap来解析我的html文件。在

print soup.body.find_all('a', attrs={'data-tag':'Homepage Library'})[0]

我得到的结果是:

^{pr2}$

我只对href=“”零件感兴趣。所以我希望ResultSet只返回href的值。在

我不知道如何扩展这个查询,所以它返回href部分。在


Tags: 文件文档列表datahtmltagbodyall
3条回答

使用attrs

links = soup.body.find_all('a', attrs={'data-tag':'Homepage Library'})
print [link.attrs['href'] for link in links]

或者,将元素视为字典,直接从元素中获取属性:

^{pr2}$

演示:

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']

希望有帮助。在

for link in soup.find_all('a', attrs={'data-tag':'Homepage Library'}):
    print(link.get('href'))

最后,这对我有用:

soup.body.find_all('a', attrs={'data-tag':'Homepage Library'}).attrs["href"]

相关问题 更多 >