PYTHON: ValueError: неизвестный тип URL: 'comments_42. html' - PullRequest
0 голосов
/ 09 июля 2020

Хорошо, я изучаю курс по Pyhton, и в задании нас просят получить данные из документа html. Вот что я придумал:

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


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

intlist = list()
tot = 0
count = 0
url = input('Enter - ')
html = urlopen(url, context=ctx).read()
soup = BeautifulSoup(html, "html.parser")
tags = soup('span')
for tag in tags:
    n = tag.contents[0]
    n = int(n)
    count += 1
    tot = tot + n
print("Count:", n)
print("Total:", tot)

И вот что происходит, когда я пытаюсь получить доступ к файлу (ПРИМЕЧАНИЕ: файл, который я пытаюсь получить, хранится локально):

ошибка трассировки

В чем причина этой ошибки? Спасибо всем за помощь.

1 Ответ

0 голосов
/ 09 июля 2020

Вы должны читать html прямо в BeautifulSoup. Вы не можете так легко открыть локальный файл, используя urlopen.

from bs4 import BeautifulSoup

...

with open('filename.html', 'r') as htmlfile:
    html = htmlfile.read()
soup = BeautifulSoup(html, 'html.parser')

Теперь он загружен для анализа, не забудьте изменить filename.html на ваш фактический путь к файлу

Изменить: с вашим кодом также есть много других проблем. soup('span') не находит элементы диапазона. Пожалуйста, обратитесь к документации для получения хотя бы базового c понимания.

...