html - CSS子选择器(不能选择所有子)
问题描述
这是我试图用漂亮的汤刮的图像。但是每当我使用下面显示的代码时,我只能访问第一个孩子。我永远无法接触到所有的孩子。有人可以帮我弄这个吗?
item = soup.select("ul.items > li")
print(len(item))
解决方案
该问题可以通过以下 2 个步骤解决:
- 在汤上使用select_one来获取ul
- 使用ul上的find_all来获取所有li项目。
工作解决方案:
# File name: soup-demo.py
inputHTML = """
<ul class="items">
<li class="class1">item 1</li>
<li class="class1">item 3</li>
<li class="class1">item 3</li>
</ul>
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(inputHTML, 'html.parser')
itemList = soup.select_one("ul", class_="items")
items = itemList.find_all("li")
print("Found ", len(items), " items")
for item in items:
print(item)
输出:
$ python3 soup-demo.py
Found 3 items
<li class="class1">item 1</li>
<li class="class1">item 3</li>
<li class="class1">item 3</li>
推荐阅读
- android - ConstraintLayout 仅包装部分内容
- powershell - 使用 powershell 将大文件上传到共享点库子文件夹
- sql - 对于 CASE WHEN,SQL 不为空
- docker - Docker 构建问题:错误检查上下文:无法统计
- c# - 为什么 value="string-value" 可以与 input type="time" 一起使用,而不是 bind-value="string-value"
- androidx - 错误:包 android.support.v7.app 不存在 Androidx
- angular - Angular cli可以同时显示两个组件,其中第一个包含项目列表,另一个包含所选项目的概述?
- java - 在 Spring Boot 中存储证书的最佳实践是什么?
- javascript - 如何在 Angular 8 的 FileReader 中从 2 个不同的 HTML 输入中获取 2 个文件?
- bash - Bash 4.4 无法自动完成“更多”但不是“更少”或“cd”的环境变量