Newb ie, таблица соскабливается с URL-адреса и не удается получить вывод в командной строке python - PullRequest
0 голосов
/ 09 мая 2020

Это домашнее задание, мне нужно суммировать все данные в теге span и распечатать их, я вынул всю информацию из тега span и добавил ее в список, я не знаю, как go помимо этого, поскольку любая функция, которую я набираю из for l oop, не работает, также мне нужно дважды нажать Enter после того, как я запустил это в командной строке python, чтобы получить результат

Я новичок вот простите пожалуйста формат вопроса, спасибо за помощь

import urllib.request, urllib.parse, urllib.error
lst = list()
from bs4 import BeautifulSoup
url = 'http://py4e-data.dr-chuck.net/comments_42.html'
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html, 'html.parser')
spans = soup.findAll('span', attrs = {'class' : 'comments'})
for span in spans:
    num = int(span.text)
    lst.append(num)
    print(num)

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

Поскольку вы подготовили список чисел в диапазоне, вы можете получить сумму чисел, используя функцию sum() в python. Передайте свой список в качестве аргумента sum().

import urllib.request, urllib.parse, urllib.error
lst = list()
from bs4 import BeautifulSoup
url = 'http://py4e-data.dr-chuck.net/comments_42.html'
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html, 'html.parser')
spans = soup.findAll('span', attrs = {'class' : 'comments'})
for span in spans:
    num = int(span.text)
    lst.append(num)
    print(num)

sum_of_nums = sum(lst)
print(sum_of_nums)
0 голосов
/ 09 мая 2020

Нет необходимости собирать в список или что-то еще, если вы просто складываете их вместе. Сделать это можно так:

import urllib.request, urllib.parse, urllib.error
lst = list()
from bs4 import BeautifulSoup
url = 'http://py4e-data.dr-chuck.net/comments_42.html'
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html, 'html.parser')
spans = soup.findAll('span', attrs = {'class' : 'comments'})
sum = 0
for span in spans:
    sum += int(span.text)

print("Total Sum = " + str(sum))
...