【发布时间】:2021-09-16 16:13:06
【问题描述】:
我找不到关于 SO 的具体问题的答案,所以就这样吧。 假设我有一个看起来像这样的 HTML(对不起,如果它看起来有点愚蠢,我只想做一个非常简单的例子来解决我的问题):
html1 = """<html>
<head></head>
<body>
<p>Hello World!</p>
<a href='whatevs.com'>whatevs</a>
<p>Howdy!</p>
<a href='well.com'>well</a>
<div><span>haha</span><a href='haha.com'>haha</a></div>
<a href='goodbye.com'>Goodbye!</a>
</body>
</html>"""
我想提取<p>Howdy!</p>之后的所有链接。
所以我尝试了,
howdy = BeautifulSoup(html1).find('p', text='Howdy!')
但是howdy.find_next_siblings('a') 和howdy.find_next('a') 都返回的东西与我想要的有点不同。
期望的输出:
[<a href="well.com">well</a>,
<a href="haha.com">haha</a>,
<a href="goodbye.com">Goodbye!</a>]
(实际上,它是['well','haha','Goodbye!'],但我想我可以从上面得到这个。)
理想情况下,我想要howdy.find_all('a') 之类的东西。
对不起,如果这是一个太基本的问题,但如果有人能指出正确的方向,我将不胜感激。谢谢!
【问题讨论】:
标签: html python-3.x beautifulsoup