ImportError: Không có mô-đun nào có tên BeautifulSoup


85

Tôi đã cài đặt BeautifulSoup bằng easy_install và cố gắng chạy tập lệnh sau

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

Nhưng không chắc tại sao điều này lại xảy ra

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

Bạn có thể giúp. Cảm ơn


Bạn đã thiết lập easy_installđể sử dụng Python2.7 hay phiên bản Python có sẵn đi kèm với bất kỳ hệ điều hành nào bạn đang sử dụng? Nếu bạn không chỉ định 2.7, hãy thử làm Python2,4 hoặc Python2.6
TyrantWave

Có vẻ như bạn đã cài đặt BeautifulSoup cho một phiên bản Python khác với phiên bản bạn đang sử dụng để chạy tập lệnh này.
Noufal Ibrahim

1
Cảm ơn bạn đã trả lời ... thực sự tôi cần easy_install cho Windows 64 bit nhưng tôi đã cài đặt 32 bit một. easy_install cho 64 bit không có sẵn tại đây: pypi.python.org/pypi/setuptools#files . tôi nên làm cái gì sau đó??
Muhammad Imran

Câu trả lời:


228

Thử đi from bs4 import BeautifulSoup

Đây có thể là sự cố với Beautiful Soup, phiên bản 4 và những ngày thử nghiệm. Tôi vừa đọc cái này từ trang chủ.


Hơn một năm trôi qua và không có gì thay đổi :)
Corvin

1
Đối với người dùng trong tương lai: kể từ ngày 2 tháng 5 năm 2014, giải pháp này vẫn hoạt động với Python 3.4.0 và BeautifulSoup 4.3.2 trên Windows 8.1
shermanzach

1
Hoạt động cho cả Windows10 :)
JumpMan

21

Trên Ubuntu 14.04, tôi đã cài đặt nó từ apt-get và nó hoạt động tốt:

sudo apt-get install python-beautifulsoup

Sau đó, chỉ cần làm:

from BeautifulSoup import BeautifulSoup


OP đang sử dụng Windows (lưu ý C:\Python27đường dẫn trong phần truy xuất của anh ta). Câu trả lời này là vô ích đối với anh ta.
rmunn

2
@rmunn Và tất cả những người dùng Linux đó (như tôi) thì sao? Tôi đã chỉnh sửa câu trả lời. Cảm ơn vì -1 ...
Caumons

9

Hãy thử cách này, của tôi đã hoạt động theo cách này. Để nhận bất kỳ dữ liệu nào của thẻ, chỉ cần thay thế "a" bằng thẻ bạn muốn.

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

bạn có thể nhập bs4 thay vì BeautifulSoup. Vì bs4 là một mô-đun tích hợp sẵn, không cần cài đặt thêm.

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

Nếu bạn muốn yêu cầu, sử dụng mô-đun yêu cầu. yêu cầu đang sử dụng urllib, requestsmô-đun. nhưng cá nhân tôi khuyên bạn nên sử dụng requestsmô-đun thay vìurllib

cài đặt mô-đun để sử dụng:

$ pip install requests

Đây là cách sử dụng mô-đun yêu cầu:

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

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

1
bs4không phải là một mô-đun tích hợp sẵn.
wim

1

Đầu tiên cài đặt phiên bản súp đẹp 4. viết lệnh trong cửa sổ đầu cuối:

pip install beautifulsoup4

sau đó nhập thư viện BeutifulSoup


0

nếu bạn có hai phiên bản python, có lẽ tình huống của tôi có thể giúp bạn

đây là tình huống của tôi

1-> mac osx

2-> tôi có hai phiên bản python, (1) phiên bản mặc định của hệ thống 2.7 (2) được cài đặt thủ công phiên bản 3.6

3-> tôi đã cài đặt beautifulsoup4 với sudo pip install beautifulsoup4

4-> tôi chạy tệp python với python3 /XXX/XX/XX.py

vì vậy tình huống 3 và 4 này là phần quan trọng, tôi đã cài đặt beautifulsoup4 bằng "pip" nhưng mô-đun này đã được cài đặt cho python verison 2.7 và tôi chạy tệp python bằng "python3". vì vậy bạn nên cài đặt beautifulsoup4 cho python 3.6;

với sudo pip3 install beautifulsoup4bạn có thể cài đặt mô-đun cho python 3.6


0

nếu bạn cài đặt nó theo cách này (nếu bạn không cài đặt theo cách này):

pip install beautifulsoup4

và nếu bạn đã sử dụng mã này (nếu không, hãy sử dụng mã này):

from bs4 import BeautifulSoup

nếu bạn sử dụng hệ thống windows, hãy kiểm tra xem có mô-đun không, có thể lưu đường dẫn khác mô-đun của nó không


0

Tôi đã gặp vấn đề tương tự với nhật thực trên Windows 10.

Tôi đã cài đặt nó giống như recommende qua cửa sổ lệnh windows (cmd) với:

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

BeautifulSoup đã được cài đặt như thế này trong thư mục python của tôi:

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

Sau khi sao chép thủ công các thư mục bs4 và EGG-INFO vào thư mục gói trang, mọi thứ bắt đầu hoạt động, ví dụ:

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"))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.