QQ 照片下载器

GitHub

简介

QQAlbumDownloader 主要用于下载 QQ 相册中的照片(原图)视频。作为一个 QQ 相册的重度用户,已累计上传近 9000 张照片,这些照片承载了我从幼年到成年的所有记忆,重要性不言而喻。即使现在微信朋友圈几乎普及到了每个国人,我依然热衷于将照片分类存放到 QQ 相册中。然而随着 QQ 空间更新逐渐放缓,一种担忧也油然而生:假如有一天 QQ 空间停止运行了怎么办?由于 QQ 相册并不提供批量下载,有朝一日 QQ 空间真的停止运行,所有存到 QQ 相册中的照片可能都会丢失,这对于我来说可能是灾难性的。因此,QQAlbumDownloader 就诞生了。

QQAlbumDownloader 支持单个相册或全部相册下载。致力于用作 QQ 相册的备份,在 QQ 空间因为不可抗力停服时,可以快速从 QQ 相册下载自己的照片,减少损失,为自己的数据保驾护航。

环境准备

环境依赖

名称 版本
Python 3.6.13
MongoDB 6.0.6

环境安装

  1. 下载并安装 Python

  2. 下载、安装并启动 MongoDB

  3. 下载 谷歌浏览器

  4. 下载 PhantomJS,删除 QQAlbumDownloader/phantomjs 文件夹,将解压后的 PhantomJS 文件移动到 QQAlbumDownloader/ 目录;

  5. 下载 ChromeDriver

    • 查看谷歌浏览器版本;

      image-20230627204357023

    • 下载对应版本的 ChromeDriver;

      image-20230627204632424

    • 将解压后文件中的 chromedriver 移动到 QQAlbumDownloader/webdriver/chromedriver 替换原有的 chromedriver;

  6. 安装 Python 依赖:pip3 install -r requirements.txt

快速上手

  1. QQAlbumDownloader/spiders/album.py 中修改 QQ 用户名和密码;

    # 输入qq号和密码
    # account = input('请输入你的qq号:')
    account = '******'
    # password = getpass.getpass('请输入你的密码:')
    password = '******'
    
  2. 修改 QQAlbumDownloader/main.py 文件;

    # 下载所有相册
    execute(["scrapy", "crawl", "album", "-a", "upload_server=true"])
    # 下载【我的家人】相册
    # execute(["scrapy", "crawl", "album", "-a", "target=我的家人", "-a", "upload_server=false"])
    
    
  3. 运行 QQAlbumDownloader/main.py 文件。

常见问题

ChromeDriver 版本不对

/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/OpenSSL/_util.py:6: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography. The next release of cryptography will remove support for Python 3.6.
  from cryptography.hazmat.bindings.openssl.binding import Binding
/Users/weipeng/projects/study/QQAlbumDownloader/QQAlbumDownloader/****** 创建成功
Traceback (most recent call last):
  File "main.py", line 8, in <module>
    execute(["scrapy", "crawl", "album", "-a", "upload_server=true"])
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/cmdline.py", line 149, in execute
    cmd.crawler_process = CrawlerProcess(settings)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 251, in __init__
    super(CrawlerProcess, self).__init__(settings)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 137, in __init__
    self.spider_loader = _get_spider_loader(settings)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 338, in _get_spider_loader
    return loader_cls.from_settings(settings.frozencopy())
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/spiderloader.py", line 61, in from_settings
    return cls(settings)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/spiderloader.py", line 25, in __init__
    self._load_all_spiders()
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/spiderloader.py", line 47, in _load_all_spiders
    for module in walk_modules(name):
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/utils/misc.py", line 71, in walk_modules
    submod = import_module(fullpath)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/weipeng/projects/study/QQAlbumDownloader/QQAlbumDownloader/spiders/album.py", line 75, in <module>
    class AlbumSpider(scrapy.Spider):
  File "/Users/weipeng/projects/study/QQAlbumDownloader/QQAlbumDownloader/spiders/album.py", line 80, in AlbumSpider
    driver = get_driver(1)
  File "/Users/weipeng/projects/study/QQAlbumDownloader/QQAlbumDownloader/util/CommonUtils.py", line 1460, in get_driver
    driver = webdriver.Chrome(abspath + '/webdriver/chromedriver/chromedriver', chrome_options=options)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 112
Current browser version is 114.0.5735.133 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

解决方法:下载和 Google Chrome 版本一致的 ChromeDriver 并放到指定目录。

无法导入 HTTPClientFactory

2023-06-28 11:10:07 [scrapy.core.downloader.handlers] ERROR: Loading "scrapy.core.downloader.handlers.http.HTTPDownloadHandler" for scheme "http"
Traceback (most recent call last):
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/__init__.py", line 48, in _load_handler
    dhcls = load_object(path)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/utils/misc.py", line 44, in load_object
    mod = import_module(module)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http.py", line 3, in <module>
    from .http11 import HTTP11DownloadHandler as HTTPDownloadHandler
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http11.py", line 26, in <module>
    from scrapy.core.downloader.webclient import _parse
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/webclient.py", line 4, in <module>
    from twisted.web.client import HTTPClientFactory
ImportError: cannot import name 'HTTPClientFactory'
2023-06-28 11:10:07 [scrapy.core.downloader.handlers] ERROR: Loading "scrapy.core.downloader.handlers.http.HTTPDownloadHandler" for scheme "https"
Traceback (most recent call last):
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/__init__.py", line 48, in _load_handler
    dhcls = load_object(path)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/utils/misc.py", line 44, in load_object
    mod = import_module(module)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http.py", line 3, in <module>
    from .http11 import HTTP11DownloadHandler as HTTPDownloadHandler
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http11.py", line 26, in <module>
    from scrapy.core.downloader.webclient import _parse
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/webclient.py", line 4, in <module>
    from twisted.web.client import HTTPClientFactory
ImportError: cannot import name 'HTTPClientFactory'
2023-06-28 11:10:07 [scrapy.core.downloader.handlers] ERROR: Loading "scrapy.core.downloader.handlers.s3.S3DownloadHandler" for scheme "s3"
Traceback (most recent call last):
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/__init__.py", line 48, in _load_handler
    dhcls = load_object(path)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/utils/misc.py", line 44, in load_object
    mod = import_module(module)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/s3.py", line 6, in <module>
    from .http import HTTPDownloadHandler
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http.py", line 3, in <module>
    from .http11 import HTTP11DownloadHandler as HTTPDownloadHandler
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http11.py", line 26, in <module>
    from scrapy.core.downloader.webclient import _parse
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/webclient.py", line 4, in <module>
    from twisted.web.client import HTTPClientFactory
ImportError: cannot import name 'HTTPClientFactory'
Unhandled error in Deferred:
2023-06-28 11:10:07 [twisted] CRITICAL: Unhandled error in Deferred:

Traceback (most recent call last):
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 172, in crawl
    return self._crawl(crawler, *args, **kwargs)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 176, in _crawl
    d = crawler.crawl(*args, **kwargs)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/twisted/internet/defer.py", line 1905, in unwindGenerator
    return _cancellableInlineCallbacks(gen)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/twisted/internet/defer.py", line 1815, in _cancellableInlineCallbacks
    _inlineCallbacks(None, gen, status)
--- <exception caught here> ---
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/twisted/internet/defer.py", line 1660, in _inlineCallbacks
    result = current_context.run(gen.send, result)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/twisted/internet/defer.py", line 62, in run
    return f(*args, **kwargs)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 80, in crawl
    self.engine = self._create_engine()
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 105, in _create_engine
    return ExecutionEngine(self, lambda _: self.stop())
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/engine.py", line 69, in __init__
    self.downloader = downloader_cls(crawler)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/__init__.py", line 88, in __init__
    self.middleware = DownloaderMiddlewareManager.from_crawler(crawler)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/middleware.py", line 53, in from_crawler
    return cls.from_settings(crawler.settings, crawler)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/middleware.py", line 34, in from_settings
    mwcls = load_object(clspath)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/utils/misc.py", line 44, in load_object
    mod = import_module(module)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import

  File "<frozen importlib._bootstrap>", line 971, in _find_and_load

  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked

  File "<frozen importlib._bootstrap_external>", line 678, in exec_module

  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/downloadermiddlewares/retry.py", line 24, in <module>
    from scrapy.core.downloader.handlers.http11 import TunnelError
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http11.py", line 26, in <module>
    from scrapy.core.downloader.webclient import _parse
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/webclient.py", line 4, in <module>
    from twisted.web.client import HTTPClientFactory
builtins.ImportError: cannot import name 'HTTPClientFactory'

2023-06-28 11:10:07 [twisted] CRITICAL:
Traceback (most recent call last):
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/twisted/internet/defer.py", line 1660, in _inlineCallbacks
    result = current_context.run(gen.send, result)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/twisted/internet/defer.py", line 62, in run
    return f(*args, **kwargs)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 80, in crawl
    self.engine = self._create_engine()
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 105, in _create_engine
    return ExecutionEngine(self, lambda _: self.stop())
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/engine.py", line 69, in __init__
    self.downloader = downloader_cls(crawler)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/__init__.py", line 88, in __init__
    self.middleware = DownloaderMiddlewareManager.from_crawler(crawler)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/middleware.py", line 53, in from_crawler
    return cls.from_settings(crawler.settings, crawler)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/middleware.py", line 34, in from_settings
    mwcls = load_object(clspath)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/utils/misc.py", line 44, in load_object
    mod = import_module(module)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/downloadermiddlewares/retry.py", line 24, in <module>
    from scrapy.core.downloader.handlers.http11 import TunnelError
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http11.py", line 26, in <module>
    from scrapy.core.downloader.webclient import _parse
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/webclient.py", line 4, in <module>
    from twisted.web.client import HTTPClientFactory
ImportError: cannot import name 'HTTPClientFactory'

解决方法:将 twisted 版本从 22.4.0 改为 21.7.0,命令为 pip3 install twisted==21.7.0

OpenSSL.SSL 模块找不到 SSLv3_METHOD 属性

2023-06-28 11:16:46 [scrapy.core.downloader.handlers] ERROR: Loading "scrapy.core.downloader.handlers.http.HTTPDownloadHandler" for scheme "http"
Traceback (most recent call last):
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/__init__.py", line 48, in _load_handler
    dhcls = load_object(path)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/utils/misc.py", line 44, in load_object
    mod = import_module(module)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http.py", line 3, in <module>
    from .http11 import HTTP11DownloadHandler as HTTPDownloadHandler
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http11.py", line 27, in <module>
    from scrapy.core.downloader.tls import openssl_methods
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/tls.py", line 17, in <module>
    METHOD_SSLv3:  SSL.SSLv3_METHOD,                    # SSL 3 (NOT recommended)
AttributeError: module 'OpenSSL.SSL' has no attribute 'SSLv3_METHOD'
2023-06-28 11:16:46 [scrapy.core.downloader.handlers] ERROR: Loading "scrapy.core.downloader.handlers.http.HTTPDownloadHandler" for scheme "https"
Traceback (most recent call last):
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/__init__.py", line 48, in _load_handler
    dhcls = load_object(path)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/utils/misc.py", line 44, in load_object
    mod = import_module(module)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http.py", line 3, in <module>
    from .http11 import HTTP11DownloadHandler as HTTPDownloadHandler
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http11.py", line 27, in <module>
    from scrapy.core.downloader.tls import openssl_methods
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/tls.py", line 17, in <module>
    METHOD_SSLv3:  SSL.SSLv3_METHOD,                    # SSL 3 (NOT recommended)
AttributeError: module 'OpenSSL.SSL' has no attribute 'SSLv3_METHOD'
2023-06-28 11:16:46 [scrapy.core.downloader.handlers] ERROR: Loading "scrapy.core.downloader.handlers.s3.S3DownloadHandler" for scheme "s3"
Traceback (most recent call last):
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/__init__.py", line 48, in _load_handler
    dhcls = load_object(path)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/utils/misc.py", line 44, in load_object
    mod = import_module(module)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/s3.py", line 6, in <module>
    from .http import HTTPDownloadHandler
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http.py", line 3, in <module>
    from .http11 import HTTP11DownloadHandler as HTTPDownloadHandler
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http11.py", line 27, in <module>
    from scrapy.core.downloader.tls import openssl_methods
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/tls.py", line 17, in <module>
    METHOD_SSLv3:  SSL.SSLv3_METHOD,                    # SSL 3 (NOT recommended)
AttributeError: module 'OpenSSL.SSL' has no attribute 'SSLv3_METHOD'
Unhandled error in Deferred:
2023-06-28 11:16:46 [twisted] CRITICAL: Unhandled error in Deferred:

Traceback (most recent call last):
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 172, in crawl
    return self._crawl(crawler, *args, **kwargs)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 176, in _crawl
    d = crawler.crawl(*args, **kwargs)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/twisted/internet/defer.py", line 1909, in unwindGenerator
    return _cancellableInlineCallbacks(gen)  # type: ignore[unreachable]
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/twisted/internet/defer.py", line 1816, in _cancellableInlineCallbacks
    _inlineCallbacks(None, gen, status)
--- <exception caught here> ---
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/twisted/internet/defer.py", line 1661, in _inlineCallbacks
    result = current_context.run(gen.send, result)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/twisted/internet/defer.py", line 63, in run
    return f(*args, **kwargs)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 80, in crawl
    self.engine = self._create_engine()
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 105, in _create_engine
    return ExecutionEngine(self, lambda _: self.stop())
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/engine.py", line 69, in __init__
    self.downloader = downloader_cls(crawler)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/__init__.py", line 88, in __init__
    self.middleware = DownloaderMiddlewareManager.from_crawler(crawler)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/middleware.py", line 53, in from_crawler
    return cls.from_settings(crawler.settings, crawler)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/middleware.py", line 34, in from_settings
    mwcls = load_object(clspath)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/utils/misc.py", line 44, in load_object
    mod = import_module(module)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import

  File "<frozen importlib._bootstrap>", line 971, in _find_and_load

  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked

  File "<frozen importlib._bootstrap_external>", line 678, in exec_module

  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/downloadermiddlewares/retry.py", line 24, in <module>
    from scrapy.core.downloader.handlers.http11 import TunnelError
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http11.py", line 27, in <module>
    from scrapy.core.downloader.tls import openssl_methods
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/tls.py", line 17, in <module>
    METHOD_SSLv3:  SSL.SSLv3_METHOD,                    # SSL 3 (NOT recommended)
builtins.AttributeError: module 'OpenSSL.SSL' has no attribute 'SSLv3_METHOD'

2023-06-28 11:16:46 [twisted] CRITICAL:
Traceback (most recent call last):
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/twisted/internet/defer.py", line 1661, in _inlineCallbacks
    result = current_context.run(gen.send, result)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/twisted/internet/defer.py", line 63, in run
    return f(*args, **kwargs)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 80, in crawl
    self.engine = self._create_engine()
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/crawler.py", line 105, in _create_engine
    return ExecutionEngine(self, lambda _: self.stop())
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/engine.py", line 69, in __init__
    self.downloader = downloader_cls(crawler)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/__init__.py", line 88, in __init__
    self.middleware = DownloaderMiddlewareManager.from_crawler(crawler)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/middleware.py", line 53, in from_crawler
    return cls.from_settings(crawler.settings, crawler)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/middleware.py", line 34, in from_settings
    mwcls = load_object(clspath)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/utils/misc.py", line 44, in load_object
    mod = import_module(module)
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/downloadermiddlewares/retry.py", line 24, in <module>
    from scrapy.core.downloader.handlers.http11 import TunnelError
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/handlers/http11.py", line 27, in <module>
    from scrapy.core.downloader.tls import openssl_methods
  File "/Users/weipeng/anaconda3/envs/QQAlbumDownloader-test/lib/python3.6/site-packages/scrapy/core/downloader/tls.py", line 17, in <module>
    METHOD_SSLv3:  SSL.SSLv3_METHOD,                    # SSL 3 (NOT recommended)
AttributeError: module 'OpenSSL.SSL' has no attribute 'SSLv3_METHOD'

解决方法:将 pyopenssl 版本改为 22.0.0,命令为 pip3 install pyopenssl==22.0.0

互动与反馈

如果您在使用过程中有任何问题,或者有好的建议,欢迎提交 issue或者通过邮箱与我取得联系,感谢您的支持与帮助。

#晒一晒我的offer##23届找工作求助阵地##软件开发薪资爆料##我的实习求职记录#
全部评论

相关推荐

06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
人力小鱼姐:实习经历没有什么含金量,咖啡店员迎宾这种就别写了,其他两段包装一下 想找人力相关的话,总结一下个人优势,结合校园经历里有相关性的部分,加一段自我评价
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务