ImportError:没有名为BeautifulSoup的模块


85

我已经使用easy_install安装了BeautifulSoup,并尝试运行以下脚本

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 2011年

看起来您为其他版本的Python安装了BeautifulSoup,而不是用于运行此脚本的版本。
Noufal Ibrahim 2011年

1
感谢您的回复...是的,实际上我需要easy_install用于64位Windows,但我已经安装了32位Windows。64位的easy_install在此处不可用:pypi.python.org/pypi/setuptools#files。那我该怎么办?
穆罕默德·伊姆兰

Answers:


228

试试这个 from bs4 import BeautifulSoup

这可能与Beautiful Soup,版本4和Beta测试版有关。我只是从主页上读到的。


一年多过去了,什么都没变:)
Corvin

1
对于未来的用户:2014年5月2日,该解决方案还与Python 3.4.0和4.3.2 BeautifulSoup适用于Windows 8.1
shermanzach

1
同样适用于Windows10 :)
JumpMan 2015年

21

在Ubuntu 14.04上,我从apt-get安装了它,并且工作正常:

sudo apt-get install python-beautifulsoup

然后做:

from BeautifulSoup import BeautifulSoup


OP正在使用Windows(请注意C:\Python27其追溯路径)。这个答案对他没有用。
rmunn 2014年

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

如果要请求,请使用请求模块。请求正在使用urllibrequests模块。但我个人建议使用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


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是关键部分,我已经使用“ pip”安装了beautifulsoup4,但是此模块是为python verison 2.7安装的,并且我使用“ python3”运行python文件。所以您应该为python 3.6安装beautifulsoup4;

sudo pip3 install beautifulsoup4您可以为python 3.6安装模块


0

如果以这种方式安装(如果没有,则以这种方式安装):

pip install beautifulsoup4

如果使用了此代码(如果没有使用,请使用此代码):

from bs4 import BeautifulSoup

如果您使用的是Windows系统,请检查是否有模块,可能会在模块中保存其他路径


0

我在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"))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.