去南极看鲸鱼 2023-02-20 02:30 采纳率: 33.3%
浏览 38

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)
# 设置编码
# 获取数据 网络源代码
# <Response [200]>:发送请求成功
# 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 <module>
    selector = parsel.selector(data_html)
TypeError: 'module' object is not callable

  • 写回答

2条回答 默认 最新

  • collapser_ 2023-02-20 03:47
    关注

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

    在导入模块时,代码中同时导入了 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)
    
    评论

报告相同问题?

问题事件

  • 创建了问题 2月20日