TypeError: 'module' object is not callable

我在编写时,突然出现模块不可用报错,哪位大shen可以帮帮我找找咋改正┭┮﹏┭┮

import requests  # 发送网络请求
import parsel
import selector

# 伪装
headers = {
    # 浏览器基本信息
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 '
                  'Safari/537.36 '
}
# 发送请求
url = "https://www.che168.com/china/list/#pvareaid=100943"
respsonse = requests.get(url=url, headers=headers)
# 设置编码
# 获取数据 网络源代码
# :发送请求成功
# print(respsonse.text)
data_html = respsonse.text
# 3.解析数据(筛选数据)

selector = parsel.selector(data_html)
lis = selector.css('.viewlist_ul li')
print(lis)

报错
Traceback (most recent call last):
  File "C:\Users\Administrator\PycharmProjects\pythonProject12\毕业设计--草稿\爬取.py", line 21, in 
    selector = parsel.selector(data_html)
TypeError: 'module' object is not callable

在这段代码中,有几个问题需要注意:

在导入模块时,代码中同时导入了 parsel 和 selector 两个模块,但是 selector 不是一个 Python 内置的模块也不是第三方常用的模块,因此可能会导致代码运行时出现 NameError 错误。

在使用 parsel 模块解析数据时,使用的方法应该是 Selector,而不是 selector。因此,应该将 selector = parsel.selector(data_html) 修改为 selector = parsel.Selector(data_html)。

在使用 selector 对象筛选数据时,应该使用 css() 方法,而不是 selector() 方法。因此,应该将 lis = selector.selector('.viewlist_ul li') 修改为 lis = selector.css('.viewlist_ul li')。

修改后的代码如下:


import requests
import parsel

# 伪装
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}

# 发送请求
url = "https://www.che168.com/china/list/#pvareaid=100943"
response = requests.get(url=url, headers=headers)

# 设置编码
response.encoding = 'utf-8'

# 获取数据 网络源代码
data_html = response.text

# 解析数据(筛选数据)
selector = parsel.Selector(data_html)
lis = selector.css('.viewlist_ul li')
print(lis)