如何获取重复多次的ul标签内的标签的href?



我想做的是获取重复多次的ul中a标签的href:例如:

<div class="contain">
<div id="0">
<ul class="drop">
<li><a href="some_link"></a></li>
<li><a href="some_link_1"></a></li>
<li><a href="some_link_2"></a></li>
<li><a href="some_link_3"></a></li>
</ul>
</div>
</div>
<div class="contain">
<div id="1">
<ul class="drop">
<li><a href="some_link_4"></a></li>
<li><a href="some_link_5"></a></li>
<li><a href="some_link_6"></a></li>
<li><a href="some_link_7"></a></li>
</ul>
</div>
</div>
<div class="contain">
<div id="a">
<ul class="drop">
<li><a href="some_link_7"></a></li>
<li><a href="some_link_8"></a></li>
<li><a href="some_link_9"></a></li>
<li><a href="some_link"></a></li>
</ul>
</div>
</div>

我想要的是获取这段代码中的所有 href。我该怎么办?

根据您对要使用的ul元素中的所有href所说的话,它会更准确:

links = [i['href'] for i in soup.select('.drop [href]')]

这使用父ul的类名(第二快的选择器方法(与子[href]相结合,子子将获取其中的所有href属性(不仅来自a标签,而且来自父ul中的任何内容(。

使用另一个答案,您将获得与文档中a标签关联的所有href,无论是否存在父ul

from bs4 import BeautifulSoup
html = '''<div class="contain">
<div id="0">
<ul class="drop">
<li><a href="some_link"></a></li>
<li><a href="some_link_1"></a></li>
<li><a href="some_link_2"></a></li>
<li><a href="some_link_3"></a></li>
</ul>
</div>
</div>
<div class="contain">
<div id="1">
<ul class="drop">
<li><a href="some_link_4"></a></li>
<li><a href="some_link_5"></a></li>
<li><a href="some_link_6"></a></li>
<li><a href="some_link_7"></a></li>
</ul>
</div>
</div>
<div class="contain">
<div id="a">
<ul class="drop">
<li><a href="some_link_7"></a></li>
<li><a href="some_link_8"></a></li>
<li><a href="some_link_9"></a></li>
<li><a href="some_link"></a></li>
</ul>
</div>
</div>'''
soup = BeautifulSoup(html)
for a in soup.find_all('a', href=True):
print "The URL:", a['href']

这将打印所有href

The URL: some_link
The URL: some_link_1
The URL: some_link_2
The URL: some_link_3
The URL: some_link_4
The URL: some_link_5
The URL: some_link_6
The URL: some_link_7
The URL: some_link_7
The URL: some_link_8
The URL: some_link_9
The URL: some_link

要获取所有链接的列表,您只需使用:

hrefLinks = [EachLink['href'] for EachLink in  soup.find_all('a', href=True)]

最新更新