|
发表于 2025-1-11 17:15:49
|
显示全部楼层
这个错误可能与您使用的某个库版本有关,其中一个常见原因是 `pyecharts` 的依赖库版本不兼容。在最新的 Python 版本中,`collections.Iterable` 已被移除,因此使用该属性的老版本库会出现错误信息。
您还存在一些代码问题,以下是对代码进行修正及优化的建议:
1. **变量初始化**:`wordList` 变量需要先初始化为空列表。
2. **变量命名错误**:`letter` 字典中的计数逻辑有误,应该是 `letters[word] = 1` 和 `letters[word] += 1`。
3. **`word_size_range` 参数缺失**:需要为 `WordCloud` 添加适当的 `word_size_range`。
以下是修正后的代码:
- import requests
- from bs4 import BeautifulSoup
- import jieba
- from pyecharts.charts import WordCloud
- url = "https://movie.douban.com/subject/26420675/"
- headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}
- response = requests.get(url, headers=headers)
- html = response.text
- soup = BeautifulSoup(html, "lxml")
- content_all = soup.find_all(class_="short-content")
- wordList = [] # 初始化为空列表
- for content in content_all:
- contentString = content.get_text(strip=True)
- words = jieba.lcut(contentString)
- wordList += words # 拼接列表
- letters = {}
- for word in wordList:
- if len(word) > 1:
- if word not in letters:
- letters[word] = 1 # 初始化计数
- else:
- letters[word] += 1 # 计数加1
- wd = WordCloud()
- wd.add(series_name="影评", data_pair=letters.items(), word_size_range=[20, 100])
- wd.render("古剑奇谭影评.html")
复制代码
您还可以检查是否有必要更新 `pyecharts` 或其他相关依赖库,以避免兼容性问题。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|