You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

bs4.element.ResultSet元素存入列表出现多余空白字符如何解决

BeautifulSoup提取分类文本冗余空白问题修复方案

问题原因

你的代码存在两个核心问题导致输出带大量冗余空白:

  • 选择器粒度太大:直接提取整个导航ul元素的文本,会把所有分类的内容混杂在同一个字符串里,同时携带HTML渲染生成的大量换行、空格字符
  • 未做文本清理:提取文本时没有对空白字符做过滤处理,还误用了Python内置关键字list作为变量名,可能引发后续逻辑报错

修正后可直接运行的代码

import requests
from bs4 import BeautifulSoup
import sqlite3
import lxml

response = requests.get('https://books.toscrape.com/')
soup = BeautifulSoup(response.text, 'lxml')
# 先定位导航栏,再提取所有分类对应的a标签
category_tags = soup.find("ul", class_ = 'nav nav-list' ).find_all('a')
category_list = []

for tag in category_tags:
    # get_text的strip参数直接清理首尾所有空白字符
    cate_name = tag.get_text(strip=True)
    # 过滤空内容避免无效值
    if cate_name:
        category_list.append(cate_name)
print(category_list)

输出效果

处理后得到的列表格式如下:

['Books', 'Travel', 'Mystery', 'Historical Fiction', 'Sequential Art', 'Classics', 'Philosophy', ...]

处理后的纯净文本可直接写入SQLite数据表使用。


内容的提问来源于stack exchange,提问作者Fady Esam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:39:03