ImportError: нет модуля с именем BeautifulSoup


86

Я установил BeautifulSoup с помощью easy_install и пытаюсь запустить следующий скрипт

from BeautifulSoup import BeautifulSoup
import re

doc = ['<html><head><title>Page title</title></head>',
       '<body><p id="firstpara" align="center">This is paragraph <b>one</b>.',
       '<p id="secondpara" align="blah">This is paragraph <b>two</b>.',
       '</html>']
soup = BeautifulSoup(''.join(doc))

print soup.prettify()

Но не уверен, почему это происходит

Traceback (most recent call last):
  File "C:\Python27\reading and writing xml file from web1.py", line 49, in <module>
    from BeautifulSoup import BeautifulSoup
ImportError: No module named BeautifulSoup

Не могли бы вы помочь. благодаря


Вы настроили easy_installиспользовать Python2.7 или встроенную версию Python, которая поставлялась с любой ОС, которую вы используете? Если вы не указали 2.7, попробуйте выполнить Python2,4 или Python2.6
TyrantWave

Похоже, вы установили BeautifulSoup для версии Python, отличной от той, которую вы используете для запуска этого скрипта.
Нуфаль Ибрагим

1
Спасибо за ответ ... да, на самом деле мне нужен easy_install для 64-битных окон, но я установил 32-битный. easy_install для 64-битной версии недоступен здесь: pypi.python.org/pypi/setuptools#files . что мне тогда делать ??
Мухаммад Имран

Ответы:


230

Попробуй это from bs4 import BeautifulSoup

Это может быть проблема с Beautiful Soup версии 4 и в дни бета-тестирования. Я только что прочитал это с домашней страницы.


Прошло больше года, и ничего не изменилось :)
Корвин

1
Для будущих пользователей: по состоянию на 2 мая 2014 г. это решение все еще работает с Python 3.4.0 и BeautifulSoup 4.3.2 в Windows 8.1
shermanzach

1
Работает и для Windows10 :)
JumpMan

Это решение также работает в Google Colab. Альтернативы были проблематичными. Пришлось немного осмотреться, прежде чем найти это.
marcogemaque

21

В Ubuntu 14.04 я установил его из apt-get, и он работал нормально:

sudo apt-get install python-beautifulsoup

Тогда просто сделайте:

from BeautifulSoup import BeautifulSoup


1
OP использует Windows (обратите внимание на C:\Python27путь в его трассировке). Этот ответ для него бесполезен.
rmunn

2
@rmunn А что насчет всех этих пользователей Linux (как я)? Я отредактировал ответ. Спасибо за -1 ...
Caumons

9

Попробуйте это, у меня так получилось. Чтобы получить какие-либо данные тега, просто замените "a" на нужный тег.

from bs4 import BeautifulSoup as bs
import urllib

url="http://currentaffairs.gktoday.in/month/current-affairs-january-2015"

soup = bs(urllib.urlopen(url))
for link in soup.findAll('a'):
        print link.string

5

вы можете импортировать bs4 вместо BeautifulSoup. Поскольку bs4 является встроенным модулем, дополнительной установки не требуется.

from bs4 import BeautifulSoup
import re

doc = ['<html><head><title>Page title</title></head>',
       '<body><p id="firstpara" align="center">This is paragraph <b>one</b>.',
       '<p id="secondpara" align="blah">This is paragraph <b>two</b>.',
       '</html>']
soup = BeautifulSoup(''.join(doc))

print soup.prettify()

Если вы хотите запросить, используйте модуль запросов. запрос используется urllib, requestsмодули. но я лично рекомендую использовать requestsмодуль вместоurllib

установка модуля для использования:

$ pip install requests

Вот как использовать модуль запросов:

import requests as rq
res = rq.get('http://www.example.com')

print(res.content)
print(res.status_code)

1
bs4не является встроенным модулем.
wim

1

Сначала установите красивый суп версии 4. Напишите команду в окне терминала:

pip install beautifulsoup4

затем импортируйте библиотеку BeutifulSoup


0

если у вас есть две версии python, возможно, моя ситуация может вам помочь

это моя ситуация

1-> Mac OSX

2-> у меня две версии Python, (1) версия системы по умолчанию 2.7 (2) версия 3.6, установленная вручную

3-> я установил beautifulsoup4 с помощью sudo pip install beautifulsoup4

4-> я запускаю файл python с python3 /XXX/XX/XX.py

так что ситуации 3 и 4 являются ключевыми, я установил beautifulsoup4 с помощью «pip», но этот модуль был установлен для python verison 2.7, и я запускаю файл python с «python3». поэтому вам следует установить beautifulsoup4 для python 3.6;

с помощью sudo pip3 install beautifulsoup4вы можете установить модуль для python 3.6


0

если вы установили его таким образом (если нет, установите его таким образом):

pip install beautifulsoup4

и если вы использовали этот код (если нет, используйте этот код):

from bs4 import BeautifulSoup

если вы используете систему Windows, проверьте, есть ли модуль, может быть сохранен другой путь к его модулю


0

У меня была такая же проблема с eclipse в Windows 10.

Я установил его, как рекомендую, через командное окно Windows (cmd) с помощью:

C:\Users\NAMEOFUSER\AppData\Local\Programs\Python\beautifulsoup4-4.8.2\setup.py install 

BeautifulSoup был установлен в моем каталоге python следующим образом:

C:\Users\NAMEOFUSE\AppData\Local\Programs\Python\Python38\Lib\site-packages\beautifulsoup4-4.8.2-py3.8.egg

После ручного копирования папок bs4 и EGG-INFO в папку site-packages все начало работать, также пример:

from bs4 import BeautifulSoup


html = """
    <html>
        <body>
            <p> Ich bin ein Absatz!</p>
        </body>
    </html>
"""
print(html)


soup = BeautifulSoup(html, 'html.parser')

print(soup.find_all("p"))
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.