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

Python爬虫作业遇问题:bs4模块未找到且程序无输入输出

Hi there! 作为刚接触Python的新手,能写出这样的代码已经很棒啦!咱们一步步来解决你遇到的两个问题:

问题1:bs4模块找不到的问题

虽然你安装了BeautifulSoup4,但大概率是Python环境不匹配导致的:

  • 如果你用的是Python3,一定要用pip3 install beautifulsoup4来安装模块(如果系统里同时装了Python2和Python3,直接用pip可能会把模块装到Python2环境里)
  • 可以先在终端测试模块是否能正常导入:输入python3 -c "import bs4; print('Success')",如果输出Success,说明模块本身没问题,问题出在代码的兼容性上

问题2:程序不提示输入URL、无输出的问题

你的代码是Python2的写法,但现在主流用的是Python3,两者的urllib模块结构有变化:

  • Python3中,urlopen属于urllib.request子模块,不能直接通过urllib.urlopen调用
  • 另外,Python3的print是标准函数,虽然你代码里的空格不影响运行,但规范写法是print(sum(numbers))

修改后的兼容Python3的代码

import urllib.request
from bs4 import BeautifulSoup

# 先获取URL输入
url = input("Enter URL: ")
# 用Python3的方式打开URL
page = urllib.request.urlopen(url)
soup = BeautifulSoup(page, "html.parser")

# 精准匹配带有comments类的span标签,避免提取无关内容
spans = soup.find_all('span', class_='comments')
numbers = []
for span in spans:
    # 加个异常处理,避免HTML里出现非数字内容导致崩溃
    try:
        num = int(span.string.strip())
        numbers.append(num)
    except ValueError:
        print(f"Skipping non-numeric content: {span.string}")

print("Sum of comments numbers:", sum(numbers))

额外的小建议

  1. 运行代码时,用python3 你的文件名.py启动,避免默认调用Python2
  2. 用soup.find_all('span', class_='comments')比soup('span')更精准,只会抓取目标标签
  3. 加入try-except可以让程序更健壮,不会因为意外的非数字内容直接报错

你可以试试修改后的代码,应该就能解决你的问题啦!如果还有其他疑问,随时问哦 😊


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:04:14