我在编写时,突然出现模块不可用报错,哪位大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)