ImportError: Nenhum módulo denominado BeautifulSoup


86

Eu instalei o BeautifulSoup usando easy_install e tentei executar o seguinte script

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()

Mas não tenho certeza por que isso está acontecendo

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

Poderia ajudar por favor. obrigado


Você configurou easy_installpara usar o Python2.7 ou a versão embutida do Python que veio com o sistema operacional que você está usando? Se você não especificou 2.7, tente fazer Python2,4 ou Python2.6
TyrantWave

Parece que você instalou o BeautifulSoup para uma versão diferente do Python daquela que está usando para executar este script.
Noufal Ibrahim

1
Obrigado pela sua resposta ... sim, na verdade eu preciso do easy_install para Windows de 64 bits, mas instalei um de 32 bits. easy_install para 64 bits não está disponível aqui: pypi.python.org/pypi/setuptools#files . o que devo fazer então ??
Muhammad Imran

Respostas:


230

Tente isto from bs4 import BeautifulSoup

Isso pode ser um problema com a Beautiful Soup, versão 4 e os dias beta. Acabei de ler isso na página inicial.


Mais de um ano se passou e nada mudou :)
Corvin

1
Para futuros usuários: em 2 de maio de 2014, esta solução ainda funciona com Python 3.4.0 e BeautifulSoup 4.3.2 no Windows 8.1
shermanzach

1
Funciona para Windows10 também :)
JumpMan

Esta solução também está funcionando no Google Colab. As alternativas eram problemáticas. Tive que olhar um pouco ao redor antes de encontrar isso.
marcogemaque

21

No Ubuntu 14.04 eu instalei pelo apt-get e funcionou bem:

sudo apt-get install python-beautifulsoup

Depois é só fazer:

from BeautifulSoup import BeautifulSoup


1
O OP está usando o Windows (observe o C:\Python27caminho em seu traceback). Esta resposta é inútil para ele.
rmunn,

2
@rmunn E quanto a todos aqueles usuários Linux (como eu)? Eu editei a resposta. Obrigado pelo -1 ...
Caumons de

9

Tente isso, o meu funcionou dessa maneira. Para obter algum dado da tag basta substituir o "a" pela tag desejada.

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

você pode importar bs4 em vez de BeautifulSoup. Como o BS4 é um módulo integrado, nenhuma instalação adicional é necessária.

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()

Se você quiser solicitar, use o módulo de solicitações. pedido está usando urllib, requestsmódulos. mas eu pessoalmente recomendo usar o requestsmódulo em vez deurllib

instalação do módulo para usar:

$ pip install requests

Veja como usar o módulo de solicitações:

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

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

1
bs4não é um módulo embutido.
wim

1

Primeiro instale o comando de escrita bonito da versão 4. da sopa na janela do terminal:

pip install beautifulsoup4

em seguida, importe a biblioteca BeutifulSoup


0

se você tem duas versões do python, talvez minha situação possa ajudá-lo

esta é a minha situação

1-> mac osx

2-> Eu tenho duas versões python, (1) padrão do sistema versão 2.7 (2) versão 3.6 instalada manualmente

3-> instalei o beautifulsoup4 com sudo pip install beautifulsoup4

4-> eu executo o arquivo python com python3 /XXX/XX/XX.py

então esta situação 3 e 4 são a parte chave, eu instalei beautifulsoup4 com "pip" mas este módulo foi instalado para python verison 2.7, e eu executei o arquivo python com "python3". então você deve instalar beautifulsoup4 para o python 3.6;

com o sudo pip3 install beautifulsoup4você pode instalar o módulo para o python 3.6


0

se você instalou desta forma (se não, instalando desta forma):

pip install beautifulsoup4

e se você usou este código (se não, use este código):

from bs4 import BeautifulSoup

se você estiver usando o sistema Windows, verifique se há módulo, pode salvar um caminho diferente do seu módulo


0

Eu tive o mesmo problema com o eclipse no Windows 10.

Instalei como recomendado na janela de comando do windows (cmd) com:

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

BeautifulSoup foi instalado assim no meu diretório python:

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

Depois de copiar manualmente as pastas bs4 e EGG-INFO para a pasta site-packages, tudo começou a funcionar, também o exemplo:

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"))
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.