Python 虽然我在与代码相同的文件夹中打开了该文件,但它不会执行

Python 虽然我在与代码相同的文件夹中打开了该文件,但它不会执行,python,Python,对于所有人来说,这是一个小小的免责声明,这是我的第一种编程语言,我仍然在习惯它,所以建议大家提供任何建议 给出的问题如下: 在本作业中,您将编写一个类似于的Python程序。程序将使用urllib从下面的数据文件中读取HTML,并解析数据、提取数字和计算文件中数字的总和 我们为此任务提供了两个文件。一个是一个示例文件,我们在其中为您提供测试的总和,另一个是您需要为分配处理的实际数据 样本数据:(总和=2553) 实际数据:(总和以19结尾) 您不需要将这些文件保存到文件夹中,因为您的程序将直接从

对于所有人来说,这是一个小小的免责声明,这是我的第一种编程语言,我仍然在习惯它,所以建议大家提供任何建议

给出的问题如下:

在本作业中,您将编写一个类似于的Python程序。程序将使用urllib从下面的数据文件中读取HTML,并解析数据、提取数字和计算文件中数字的总和

我们为此任务提供了两个文件。一个是一个示例文件,我们在其中为您提供测试的总和,另一个是您需要为分配处理的实际数据

样本数据:(总和=2553) 实际数据:(总和以19结尾) 您不需要将这些文件保存到文件夹中,因为您的程序将直接从URL读取数据。注意:每个学生的作业都有一个不同的数据url,所以只使用自己的数据url进行分析。 数据格式 该文件是一个名称和注释计数表。您可以忽略文件中的大部分数据,以下行除外:

<tr><td>Modu</td><td><span class="comments">90</span></td></tr>
<tr><td>Kenzie</td><td><span class="comments">88</span></td></tr>
<tr><td>Hubert</td><td><span class="comments">87</span></td></tr> 
您需要调整此代码以查找span标记,并拉出span标记的文本内容,将其转换为整数并相加以完成赋值

我写过这样的话:

import urllib
from bs4 import BeautifulSoup

page = urllib.urlopen(input("Enter URL: "))
soup = BeautifulSoup(page, "html.parser")

spans = soup('span')

numbers = []

for span in spans:
    numbers.append(int(span.string))

print (sum(numbers))
错误消息是,bs4不是模块,即使它是模块,并且它没有向我请求url,也没有向我提供输出。我不知道如何解决它

import urllib.request
import urllib.parse
import urllib.error
from bs4 import BeautifulSoup
import ssl

ctx= ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

url = input('Enter -')
html = urllib.request.urlopen(url, context=ctx).read()
soup = BeautifulSoup(html, 'html.parser')

numbers = []

spans =  soup('span')
for span in spans:
    numbers.append(int(span.string))

print (sum(numbers))

使用此代码,对我有效。

此外,我已下载bs4并将其保存到与我的代码相同的文件中。您是否从
cmd.exe
运行脚本?如果是这样,您仍然需要在python环境中“安装”
bs4
(下载是不够的)。在
cmd
run
pip install bs4
中,然后再次尝试运行该脚本。您应该使用
pip install bs4
安装beautifulsoup(bs4)…@davedwards,我正在visual Studio上运行此程序,并单击调试按钮。@mehai,我认为您需要将
bs4
安装到visual Studio的Python环境中,请看这里:这与OP遇到的问题有什么关系?
import urllib.request
import urllib.parse
import urllib.error
from bs4 import BeautifulSoup
import ssl

ctx= ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

url = input('Enter -')
html = urllib.request.urlopen(url, context=ctx).read()
soup = BeautifulSoup(html, 'html.parser')

numbers = []

spans =  soup('span')
for span in spans:
    numbers.append(int(span.string))

print (sum(numbers))