使用beautifulsoup和python从无序列表中抓取文本

2024-09-30 23:45:36 发布

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

我用python和beautifulsoup从一个网页上获取信息。我对源代码的以下部分感兴趣:

<ul class="breadcrumb">
<li><a href="/" title="Return to the home page">Home</a><span 
class="sprite icon-delimiter"></span></li>
<li><a href="/VehicleSearch/Search/Mini" title="View our range of Mini 
vehicles">Mini</a><span class="sprite icon-delimiter"></span></li>
<li class="active"><a href="/VehicleSearch/Search/Mini/Countryman" 
title="View our range of Mini Countryman">Countryman</a></li>
</ul>

我想提取无序列表项目符号的文本,即“Home”、“Mini”和“Countryman”(它们也是所有链接)。在

到目前为止,我最接近的尝试是:

^{pr2}$

但这只找到了“家”链接,没有找到另外两个链接。请问我怎样才能找到所有的三个链接文本?在


Tags: homesearchtitle链接liulclassicon
2条回答

尝试为链接文本添加内部循环:

for ul in soup.findAll('ul', class_='breadcrumb'):
    for link in ul.findAll('a'):
        print(link.text)

为什么不使用css子代组合选择器来检索类中的li标记呢?在

from bs4 import BeautifulSoup as bs

html ='''
<ul class="breadcrumb">
<li><a href="/" title="Return to the home page">Home</a><span 
class="sprite icon-delimiter"></span></li>
<li><a href="/VehicleSearch/Search/Mini" title="View our range of Mini 
vehicles">Mini</a><span class="sprite icon-delimiter"></span></li>
<li class="active"><a href="/VehicleSearch/Search/Mini/Countryman" 
title="View our range of Mini Countryman">Countryman</a></li>
</ul>
'''
soup = bs(html, 'lxml')
items = [item.text for item in soup.select('.breadcrumb li')]
print(items)

相关问题 更多 >