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

如何将BeautifulSoup提取的文本转换为列表、字典或可迭代对象?

如何把BeautifulSoup提取的文本转换成列表/字典?

首先说下你代码里报错的原因:你在循环里写quotes = list(quotes)的时候,quotes这个变量还没被定义过,自然会报错啦。而且你的逻辑也没走对——应该先创建一个空列表,再把爬取到的每一条语录逐个加进去。

转换成列表的正确写法

先初始化一个空列表,然后遍历BeautifulSoup找到的每个quote元素,把文本内容提取出来添加到列表里就行:

from bs4 import BeautifulSoup
import requests

r = requests.get("http://www.great-quotes.com/quotes/category/Motivational")
data = r.text
soup = BeautifulSoup(data, 'html.parser')

# 先初始化一个空列表
quotes_list = []

# 遍历每个quote元素,提取文本并加入列表
for quote in soup.find_all("span", class_="edit_body"):
    # 用.text.strip()去除文本前后的空格和换行符
    quote_text = quote.text.strip()
    quotes_list.append(quote_text)

# 现在quotes_list就是你想要的可迭代列表啦
print(quotes_list)

运行之后,quotes_list就会是像['quote1', 'quote2', 'quote3']这样的格式,完全可以遍历使用。

额外:转换成字典的写法

如果之后你需要把语录转成字典(比如给每条语录加个序号键),可以这么做:

# 用enumerate给每条语录加序号,从1开始
quotes_dict = {index + 1: quote for index, quote in enumerate(quotes_list)}

print(quotes_dict)
# 输出会是 {1: 'quote1', 2: 'quote2', ...}

这样不管是列表还是字典,都能满足你后续迭代处理的需求啦~

内容的提问来源于stack exchange,提问作者Drunk Codes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:03:24