使用scrapy爬虫框架时出错:
PS D:\Python\Project\爬虫基础\scrapy_01\scrapy_01\spiders> scrapy crawl app Traceback (most recent call last): File "", line 88, in _run_code File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Scripts\scrapy.exe\__main__.py", line 7, in File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\scrapy\cmdline.py", line 161, in execute _run_print_help(parser, _run_command, cmd, args, opts) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\scrapy\cmdline.py", line 114, in _run_print_help func(*a, **kw) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\scrapy\cmdline.py", line 169, in _run_command cmd.run(args, opts) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\scrapy\commands\crawl.py", line 30, in run self.crawler_process.start() File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\scrapy\crawler.py", line 420, in start install_shutdown_handlers(self._signal_shutdown) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\scrapy\utils\ossignal.py", line 28, in install_shutdown_handlers reactor._handleSignals() ^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'AsyncioSelectorReactor' object has no attribute '_handleSignals'
根据这篇文章解决问题:python爬虫 - Scrapy>=2.9.0出现 “AttributeError: ‘AsyncioSelectorReactor‘ object has no attribute ‘_hand”_小菜鸟正洋洋的博客-CSDN博客
卸载Twisted的23.8.0版本(当前最新版),安装次新版本22.10.0rc1,就解决问题了。
我特别喜欢升级各种包,默认每次看到小三角形▲,就像给它升个级,你看我这里面的包都是升级到没有显示三角形▲的了,目前也只有Twisted这个包是可以升级的状态。使用pycharm这个管理包的版本还是非常方便的,卸载就点减号-,安装新的包就点击加号+,想升级,就选中可以升级的包,再点击三角形▲就可以了。升级的时候,一次只能点击一个升级一个包,因为升级一个包后它就自动刷新界面了。
Twisted包:GitHub - twisted/twisted: Event-driven networking engine written in Python.
Twisted是一个基于事件的互联网应用框架,支持Python 3.6+。它包括用于许多不同用途的模块,包括:
- twisted.web:HTTP客户端和服务器、HTML模板和WSGI服务器
- twisted.conch:SSHv2和Telnet客户端和服务器以及终端模拟器
- twisted.words:IRC、XMPP和其他IM协议的客户端和服务器
- twisted.mail:IMAPv4、POP3、SMTP客户端和服务器
- twisted.positioning:与兼容NMEA的GPS接收机通信的工具
- twisted.names:DNS客户端和工具,用于制作您自己的DNS服务器
- twisted.trial:一个与基于Twisted的代码很好集成的单元测试框架。
Twisted支持所有主要的系统事件循环-select(所有平台),poll(大多数POSIX平台),epoll(Linux),kqueue(FreeBSD,macOS),IOCP (Windows),以及各种GUI事件循环(GTK+2/3,Qt,wxWidgets)。第三方反应器可以插入Twisted,并为其他事件循环提供支持。
Twisted是一个用Python写的事件驱动的网络引擎。