ImportError: nessun modulo denominato BeautifulSoup


86

Ho installato BeautifulSoup usando easy_install e provando a eseguire il seguente 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()

Ma non sono sicuro del motivo per cui sta accadendo

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

Potresti per favore aiutare. Grazie


Hai configurato easy_installper utilizzare Python2.7 o la versione integrata di Python fornita con il sistema operativo che stai utilizzando? Se non hai specificato 2.7, prova a fare Python2,4 o Python2.6
TyrantWave

Sembra che tu abbia installato BeautifulSoup per una versione diversa di Python da quella che stai utilizzando per eseguire questo script.
Noufal Ibrahim

1
Grazie per la tua risposta ... sì, in realtà ho bisogno di easy_install per Windows a 64 bit ma ho installato uno a 32 bit. easy_install per 64 bit non è disponibile qui: pypi.python.org/pypi/setuptools#files . cosa dovrei fare allora ??
Muhammad Imran

Risposte:


230

Prova questo from bs4 import BeautifulSoup

Questo potrebbe essere un problema con Beautiful Soup, versione 4 e i giorni beta. Ho appena letto questo dalla homepage.


È passato più di un anno e nulla è cambiato :)
Corvin

1
Per i futuri utenti: a partire dal 2 maggio 2014, questa soluzione funziona ancora con Python 3.4.0 e BeautifulSoup 4.3.2 su Windows 8.1
shermanzach

1
Funziona anche per Windows10 :)
JumpMan

Questa soluzione funziona anche su Google Colab. Le alternative erano problematiche. Ho dovuto guardarmi intorno un po 'prima di trovare questo.
marcogemaque

21

Su Ubuntu 14.04 l'ho installato da apt-get e ha funzionato bene:

sudo apt-get install python-beautifulsoup

Quindi fai semplicemente:

from BeautifulSoup import BeautifulSoup


1
L'OP sta usando Windows (notare il C:\Python27percorso nel suo traceback). Questa risposta è inutile per lui.
lunedì

2
@rmunn E che dire di tutti quegli utenti Linux (come me)? Ho modificato la risposta. Grazie per il -1 ...
Caumons

9

Prova questo, il mio ha funzionato in questo modo. Per ottenere i dati del tag è sufficiente sostituire la "a" con il tag desiderato.

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

puoi importare bs4 invece di BeautifulSoup. Poiché bs4 è un modulo integrato, non è richiesta alcuna installazione aggiuntiva.

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 vuoi richiedere, utilizza il modulo richieste. la richiesta sta usando urllib, requestsmodules. ma personalmente consiglio di usare requestsmodule invece diurllib

installazione del modulo per l'utilizzo:

$ pip install requests

Ecco come utilizzare il modulo delle richieste:

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

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

1
bs4non è un modulo integrato.
wim

1

Per prima cosa installa la bellissima versione 4. scrivi il comando nella finestra del terminale:

pip install beautifulsoup4

quindi importa la libreria BeutifulSoup


0

se hai due versioni di python, forse la mia situazione potrebbe aiutarti

questa è la mia situazione

1-> mac osx

2-> ho due versioni di python, (1) versione predefinita di sistema 2.7 (2) versione 3.6 installata manualmente

3-> ho installato beautifulsoup4 con sudo pip install beautifulsoup4

4-> eseguo il file python con python3 /XXX/XX/XX.py

quindi questa situazione 3 e 4 sono la parte fondamentale, ho installato beautifulsoup4 con "pip" ma questo modulo è stato installato per python versione 2.7, e ho eseguito il file python con "python3". quindi dovresti installare beautifulsoup4 per Python 3.6;

con sudo pip3 install beautifulsoup4è possibile installare il modulo per python 3.6


0

se lo hai installato in questo modo (se non lo hai installato in questo modo):

pip install beautifulsoup4

e se hai usato questo codice (se non lo fai, usa questo codice):

from bs4 import BeautifulSoup

se utilizzi il sistema Windows, controlla se ci sono moduli, potrebbe salvare un percorso diverso nel suo modulo


0

Ho avuto lo stesso problema con Eclipse su Windows 10.

L'ho installato come consigliato dalla finestra di comando di Windows (cmd) con:

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

BeautifulSoup è stato installato in questo modo nella mia directory python:

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

Dopo aver copiato manualmente le cartelle bs4 e EGG-INFO nella cartella site-packages tutto ha iniziato a funzionare, anche l'esempio:

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"))
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.