Python导入bs4库报错的解决方法

目录

一、报错

二、源码

 三、分析

四、解决办法

五、更改后的源码与结果


一、报错

        AttributeError: partially initialized module 'bs4' has no attribute 'BeautifuSoup' (most likely due to a circular import)

大概意思是:bs4模块的BeautifuSoup没有相对应的属性,也就是说不存在这个函数。

AttributeError: partially initialized module 'bs4' has no attribute 'BeautifuSoup' (most likely due to a circular import)

二、源码

import bs4
import requests
# 目标url
url = "https://www.dy2018.com/"

# 发送请求,获取源码
resp = requests.get(url)
resp_content = resp.text

# 把源码给bs4,进行处理
result = bs4.BeautifuSoup(resp_content, "html.parser")

# 定位
result_name = result.find("div", class_="title_all")
print(result_name)

 三、分析

        代码是没有问题的(没有写完,因为from bs4 import BeautifulSoup也会报错,所以我直接使用bs4.BeautifulSuop函数),通过查找,发现是我创建的Python文件和导入的bs4的库名字一样,在导入库时(from bs4 import BeautifulSoup)会报错,在代码使用模块封装好的函数也会报错。

        我们创建的Python文件和bs4库名字一样,产生了覆盖,导致我们引入库和使用封装好的模块时,编辑器误认为我们导入的是我们创建的Python文件(我们自己创建的名字为bs4的Python文件当然没有这些封装好的函数),导致产生了报错。

        结论:bs4.py(我们创建的Pyhton文件)->覆盖掉了导入的bs4.py(库文件)文件(引入时产生覆盖)。

四、解决办法

        解决办法:把Python文件名更改为其它的名字,把覆盖去掉,就可以正常使用了。

五、更改后的源码与结果

源码:

# 导入需要使用的库
import requests
from bs4 import BeautifulSoup  # 文件名改好了,没有报错,我们直接导入使用
# 目标url
url = "https://www.dy2018.com/"

# 发送请求,获取源码
resp = requests.get(url)
resp_content = resp.text

# 把源码给bs4,进行处理
result = BeautifulSoup(resp_content, "html.parser")

# 定位
result_name = result.find("div", class_="title_all")
print(result_name)

结果:



Process finished with exit code 0

返回正常,问题解决。

你可能感兴趣的:(爬虫,Python,python,爬虫)