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

Python报错:无法从charset_normalizer.assets导入FREQUENCIES

问题描述

我是Stack Overflow的首次发帖者,写了一段用requests和BeautifulSoup爬取网页产品重量的代码:

import requests
from bs4 import BeautifulSoup

request=requests.get('https://www.bever.nl/p/msr-pocket-rocket-2-brander-MECCC70060.html?colour=658')
soup = BeautifulSoup(request.text, 'html.parser')

product_data = soup.find_all(class_='as-a-text as-a-text--s glossary-highlight')

product_weight = 0
for x in range(len(product_data)):
    if 'Gewicht (g)' in product_data[x]:
        product_weight = int(product_data[x+1].text)

print(product_weight)

运行时控制台抛出错误:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Joop_\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\Joop_\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "c:\Users\Joop_\.vscode\extensions\ms-python.python-2022.8.1\pythonFiles\lib\python\debugpy\__main__.py", line 45, in <module>
    cli.main()
  File "c:\Users\Joop_\.vscode\extensions\ms-python.python-2022.8.1\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 444, in main
    run()
  File "c:\Users\Joop_\.vscode\extensions\ms-python.python-2022.8.1\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 285, in run_file
    runpy.run_path(target_as_str, run_name=compat.force_str("__main__"))
  File "C:\Users\Joop_\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 289, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "C:\Users\Joop_\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 96, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "C:\Users\Joop_\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "c:\Users\Joop_\AppData\Local\Programs\Python\Python310\Projects\Bever script.py", line 1, in <module>
    import requests
  File "C:\Users\Joop_\AppData\Roaming\Python\Python310\site-packages\requests\__init__.py", line 45, in <module>
    from .exceptions import RequestsDependencyWarning
  File "C:\Users\Joop_\AppData\Roaming\Python\Python310\site-packages\requests\exceptions.py", line 9, in <module>
    from .compat import JSONDecodeError as CompatJSONDecodeError
  File "C:\Users\Joop_\AppData\Roaming\Python\Python310\site-packages\requests\compat.py", line 13, in <module>
    import charset_normalizer as chardet
  File "C:\Users\Joop_\AppData\Roaming\Python\Python310\site-packages\charset_normalizer\__init__.py", line 24, in <module>
    from .api import from_bytes, from_fp, from_path, normalize
  File "C:\Users\Joop_\AppData\Roaming\Python\Python310\site-packages\charset_normalizer\api.py", line 10, in <module>
    from .cd import (
  File "C:\Users\Joop_\AppData\Roaming\Python\Python310\site-packages\charset_normalizer\cd.py", line 7, in <module>
    from .assets import FREQUENCIES
ImportError: cannot import name 'FREQUENCIES' from 'charset_normalizer.assets' (unknown location)

我是Python新手,不知道问题出在哪,已经试过重新导入模块、卸载重装Python、用安装程序修复Python,但问题还是没解决。

解决方案

这个错误是charset_normalizer包损坏或安装不完整导致的,和Python本身无关,按以下步骤操作:

  • 完全卸载并重装charset_normalizer
    打开命令提示符(CMD)或终端,依次执行:

    pip uninstall -y charset_normalizer
    pip install charset_normalizer
    
  • 若仍未解决,清理缓存后重装
    先清理pip缓存:

    pip cache purge
    

    再重新安装相关依赖:

    pip install charset_normalizer requests
    
  • 检查虚拟环境(如果使用)
    如果你用了虚拟环境,确保激活对应环境后再执行上述命令,避免安装到全局Python环境中。

额外的爬取代码优化建议

你的爬取逻辑可以做些小调整,避免潜在问题:

  1. 用enumerate遍历更简洁,同时避免索引越界:
for idx, item in enumerate(product_data):
    if 'Gewicht (g)' in item.text:
        if idx + 1 < len(product_data):
            product_weight = int(product_data[idx+1].text.strip())
        break
  1. 加入请求头模拟浏览器,降低被反爬的概率:
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
request = requests.get('https://www.bever.nl/p/msr-pocket-rocket-2-brander-MECCC70060.html?colour=658', headers=headers)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:19:01