python - 使用漂亮的汤和 python 从无序列表中抓取文本
问题描述
我正在使用 python 和美丽的汤从网页中抓取信息。我对以下源代码部分感兴趣:
<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”(也是所有链接)。
到目前为止,我最接近的尝试是:
for ul in soup.findAll('ul', class_='breadcrumb'):
print(ul.find('a').contents[0])
但这只找到了“主页”链接,而没有找到其他两个链接。请问如何找到所有三个链接文本?
解决方案
为什么不使用 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)
推荐阅读
- python-3.x - 使用 ascii 表创建函数
- python - 警告:锁定文件不是最新的 pyproject.toml 中的最新更改
- jquery - 我想在移动设备上将 zuck.js 故事项目的宽度设置为最大 320px
- python - Python,在保持格式化的同时转发和修改 Outlook 电子邮件
- r - 在 Rstudio 中安装“漩涡”包时出错
- sql - 这个 plpgsql 存储过程的语法错误是什么?
- javascript - 将数据从 Injected 发送到内容脚本的最快方式
- reactjs - 如何在我的 React 材料表中添加垂直滚动?
- node.js - React - require('net') 返回空对象
- css - 上次 Chrome 更新后浮点奇怪的 CSS 宽度