Python AtributeError: __enter__ при использовании urlopen в операторе `with as` - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь понять, почему использование оператора 'with as с urlopen генерирует это исключение в моем коде:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<timed exec> in <module>

AttributeError: __enter__

Это код:

%%time
from urllib.request import urlopen
from bs4 import BeautifulSoup
import ssl

url = input('Enter - ')
req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
with urlopen(req).read() as html:
    soup = BeautifulSoup(html, 'html.parser')
    nums = []
    table = soup.find('table')
    table_data = table.find_all('span')
    for data in table_data:
        nums.append(int(data.text))
    print(sum(nums))

И почему я удалил вкладку из последней строки, она больше не выдает ошибку.

print(sum(nums))
...