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 เวอร์ชัน inbuilt ที่มาพร้อมกับระบบปฏิบัติการที่คุณใช้อยู่หรือไม่? หากคุณไม่ได้ระบุ 2.7 ลองทำ Python2,4 หรือ Python2.6
TyrantWave

ดูเหมือนว่าคุณได้ติดตั้ง BeautifulSoup สำหรับ Python เวอร์ชันอื่นที่ไม่ใช่เวอร์ชันที่คุณใช้เรียกใช้สคริปต์นี้
Noufal Ibrahim

1
ขอบคุณสำหรับการตอบกลับ ... ใช่จริงๆแล้วฉันต้องการ easy_install สำหรับ Windows 64 บิต แต่ฉันติดตั้ง 32 บิตไว้แล้ว easy_install 64 บิตไม่ได้อยู่ที่นี่: pypi.python.org/pypi/setuptools#files จะทำยังไงดี ??
มูฮัมหมัดอิมราน

คำตอบ:


230

ลองทำตามนี้ from bs4 import BeautifulSoup

นี่อาจเป็นปัญหากับ Beautiful Soup เวอร์ชัน 4 และเวอร์ชันเบต้า ฉันเพิ่งอ่านสิ่งนี้จากหน้าแรก


ผ่านไปกว่าหนึ่งปีและไม่มีอะไรเปลี่ยนแปลง :)
Corvin

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 แล้วผู้ใช้ลินุกซ์ทั้งหมด (อย่างฉัน) ล่ะ? ฉันแก้ไขคำตอบแล้ว ขอบคุณสำหรับ -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

ก่อนอื่นให้ติดตั้ง beautiful soup เวอร์ชัน 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

ฉันติดตั้งเหมือน recommende บนหน้าต่างคำสั่ง 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-package แล้วทุกอย่างก็เริ่มทำงานตัวอย่างเช่น:

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"))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.