2017-07-17 326 views
1
Traceback (most recent call last): 
    File "bs4.py", line 1, in <module> 
    import bs4 
    File "/home/mhadi/Desktop/bs4test/bs4.py", line 5, in <module> 
    soup = bs4.BeautifulSoup(site,'lxml') 
AttributeError: module 'bs4' has no attribute 'BeautifulSoup' 

代碼:AttributeError的:模塊 'BS4' 有沒有屬性 'BeautifulSoup'

import bs4 
import urllib.request 

site = urllib.request.urlopen('http://127.0.0.1:8000').read() 
soup = bs4.BeautifulSoup(site,'lxml') 
#for i in site: 
# print(site[i]) 
print(soup) 
+0

'然後直接使用'BeautifulSoup' – rednaks

+1

我想你不應該命名您的文件'bs4'因爲它會造成混亂。 –

回答

1

的問題是,你的文件名是bs4.py。現在,如果您編寫import語句,Python將首先查找具有該名稱的本地文件。所以它假設你的import bs4引用你自己的文件。您的文件將因此旨在導入自己,但它顯然不包含所需的模塊。

A quick fix正在重命名該文件。例如進入bs4tests.py。然後你可以使用import bs4

另外,也可以例如嘗試刪除本地路徑,如:從BS4進口BeautifulSoup`

import sys    # import sys package 
old_path = sys.path[:] # make a copy of the old paths 
sys.path.pop(0)   # remove the first one (usually the local) 
import bs4    # import the package 
sys.path = old_path  # restore the import path 
+0

其解決thanx –

相關問題