使用scrapy爬虫框架时出错:

PS D:\Python\Project\爬虫基础\scrapy_01\scrapy_01\spiders> scrapy crawl app
Traceback (most recent call last):
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Scripts\scrapy.exe\__main__.py", line 7, in <module>
  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写的事件驱动的网络引擎。

 

更多推荐