Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2022, 12:34   #1
satfan
Пользователь
 
Регистрация: 11.02.2019
Сообщений: 79
По умолчанию Получаю ошибку при запуске скрипта

IDLE (Python 3.10 64-bit)
Windows 10
---------------------------
Есть такой скрипт:
Код:
# coding: utf8
# == pars_playlist.py
# == select short information from Yotube playlist -- 
from urllib.request import urlopen
from BeautifulSoup import BeautifulSoup

print()
"pars_playlist working..."

# == get first linkof playlist ==
url = input('input link:')
url = "https://www.youtube.com/playlist?list=PLku9se_HAVOrs3p_jJzZAbV3BEODrhS3j"

fh = open('data.txt', 'w')

cur_num = 1  # index of reading page
try:
    while True:
        # -- get curent page --
        print()
        cur_num
        print()
        url
        content = urlopen(url)
        page = content.read()

        # -- cut head
        soup = BeautifulSoup(page)
        body = soup.find('body')

        # get current title
        span = body.find(id="ecw-title")
        title = span.getText()
        print()
        title

        # get list of all links
        ol = body.find(id="playlist-autoscroll-list")
        lis = ol.findAll('li')

        # soup for current page
        for idx, li in enumerate(lis):  # seek for picture
            li_title = li["data-video-title"]
            if li_title == title: break
        video_id = li["data-video-id"]

        # get picture information
        img = li.find('img')
        img_src = img['src']
        pos = img_src.find('?')
        if pos > 0: img_src = img_src[:pos]

        # get description of page
        descr = body.find(id="eow-description")
        descr_text = descr.getText()

        # save information
        fh.write(title.encode('utf8') + '\n')
        fh.write(video_id.encode('utf8') + '\n')
        fh.write(img_src.encode('utf8') + '\n')
        fh.write(descr_text.encode('utf8') + '\n')
        fh.write('\n')

        if idx >= len(lis) - 1: break

        # get next url
        idx += 1
        li = lis[idx]
        anc = li.find('a')
        href = anc['href']
        url = "https://www.youtube.com" + href

        cur_num = cur_num + 1

    # == 05 end of work ==
except:
    print()
    "exception: " + str(cur_num)
    pass
finally:
    fh.close()
    print()
    "ok"
---------------------
Выдаёт ошибку:
File "E:\__Мои скрипты\1_test\parser_yotube.py", line 5, in <module>
from BeautifulSoup import BeautifulSoup
ModuleNotFoundError: No module named 'BeautifulSoup'
Process finished with exit code 1
-------------------------------------------------
Пытаюсь установить модуль, опять ошибка:
WARNING: Discarding https://files.pythonhosted.org/pack....b116b8909dfd37 (from https://pypi.org/simple/beautifulsoup/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement BeautifulSoup (from versions: 3.2.0, 3.2.1, 3.2.2)
ERROR: No matching distribution found for BeautifulSoup
satfan вне форума Ответить с цитированием
Старый 17.01.2022, 12:47   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Как устанавливаете? pip install beautifulsoup4 ?
ForenLi вне форума Ответить с цитированием
Старый 17.01.2022, 12:54   #3
satfan
Пользователь
 
Регистрация: 11.02.2019
Сообщений: 79
По умолчанию

Так
C:\Python\python.exe -m pip install BeautifulSoup
и так
C:\Python\python.exe -m pip install --upgrade beautifulsoup
satfan вне форума Ответить с цитированием
Старый 17.01.2022, 12:56   #4
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

beautifulsoup это старая bs3 версия, оставшаяся т.к. еще используют
ForenLi вне форума Ответить с цитированием
Старый 17.01.2022, 13:02   #5
satfan
Пользователь
 
Регистрация: 11.02.2019
Сообщений: 79
По умолчанию

Пробую так:
C:\Windows\System32>C:\Python\pytho n.exe -m pip install bs4
Requirement already satisfied: bs4 in c:\python\lib\site-packages (0.0.1)
Requirement already satisfied: beautifulsoup4 in c:\python\lib\site-packages (from bs4) (4.10.0)
Requirement already satisfied: soupsieve>1.2 in c:\python\lib\site-packages (from beautifulsoup4->bs4) (2.3.1)
satfan вне форума Ответить с цитированием
Старый 17.01.2022, 13:03   #6
satfan
Пользователь
 
Регистрация: 11.02.2019
Сообщений: 79
По умолчанию

Потом опять ошибка:
File "E:\__Мои скрипты\1_test\parser_yotube.py", line 5, in <module>
from BeautifulSoup import BeautifulSoup
ModuleNotFoundError: No module named 'BeautifulSoup'

Process finished with exit code 1
satfan вне форума Ответить с цитированием
Старый 17.01.2022, 13:08   #7
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

поправьте
Код:
from bs4 import BeautifulSoup
ForenLi вне форума Ответить с цитированием
Старый 17.01.2022, 13:15   #8
satfan
Пользователь
 
Регистрация: 11.02.2019
Сообщений: 79
По умолчанию

Спасибо.
Ошибка пропала.
Теперь просит:
input link:
В коде ссылка рабочая. Что не так ?
satfan вне форума Ответить с цитированием
Старый 17.01.2022, 13:17   #9
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

так уберите ввод
Код:
url = input('input link:')
раз захардкодили
ForenLi вне форума Ответить с цитированием
Старый 17.01.2022, 13:21   #10
satfan
Пользователь
 
Регистрация: 11.02.2019
Сообщений: 79
По умолчанию

Убрал эту строку: url = input('input link:')
Сработало без ошибок, но в файл: data.txt
Ничего не записалось.
-------------------------------------------------
Такой ответ:
The code that caused this warning is on line 27 of the file E:\__Мои скрипты\1_test\parser_yotube.py. To get rid of this warning, pass the additional argument 'features="html5lib"' to the BeautifulSoup constructor.

soup = BeautifulSoup(page)

Process finished with exit code 0

Последний раз редактировалось satfan; 17.01.2022 в 13:23.
satfan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрипт, который будет генерировать n случайных чисел в диапазоне от A до B. Но только четные числа будут напечатаны на экране. Числа n, A и B вводятся на клавиатуре при запуске скрипта Elevan Perl 1 21.10.2020 15:28
Установила Skype. При запуске выдает ошибку siyzza Windows 1 26.02.2014 21:19
компонент VisioForge Media Player SDK 2.1.5 при запуске DVD видео пишет ошибку и программа закрывается Virus25 Компоненты Delphi 1 29.04.2010 00:11
Получаю ошибку Access violation at adress fs444 Общие вопросы C/C++ 9 16.12.2009 08:04
Народ подскажити вчём проблема при запуске скрипта? Lorden Помощь студентам 5 13.08.2008 17:46