HeLiangHIT / douyin_downloader

抖音视频下载器,批量下载自己喜欢过的视频/上传的视频/关注用户发布的视频/关注用户喜欢的视频。当前已经无法爬取,项目暂时废弃,只能用于学习了。
GNU Lesser General Public License v3.0
188 stars 61 forks source link

ModuleNotFoundError: No module named 'docopt' #1

Closed shengzicai closed 5 years ago

shengzicai commented 5 years ago

cecilmatoMacBook-Pro:~ cecil$ python3 douyin_downloader.py --help (null): can't open file 'douyin_downloader.py': [Errno 2] No such file or directory cecilmatoMacBook-Pro:~ cecil$ cd /usr/local/lib/python3.7/site-packages cecilmatoMacBook-Pro:site-packages cecil$ ls pycache outcome arrow outcome-1.0.0.dist-info arrow-0.12.1.dist-info pip asks pip-18.0-py3.7.egg-info asks-2.2.0.dist-info pkg_resources async_generator python_dateutil-2.7.4.dist-info async_generator-1.10.dist-info requests attr requests-2.20.0.dist-info attrs-18.2.0.dist-info setuptools certifi setuptools-40.4.3-py3.7.egg-info certifi-2018.10.15.dist-info sitecustomize.py chardet six-1.11.0.dist-info chardet-3.0.4.dist-info six.py dateutil sniffio douyin_downloader-1.0.3.dist-info sniffio-1.0.0.dist-info douyin_downloader.py sortedcontainers douyin_tool.py sortedcontainers-2.0.5.dist-info easy_install.py trio h11 trio-0.9.0.dist-info h11-0.8.1.dist-info urllib3 idna urllib3-1.24.dist-info idna-2.7.dist-info util.py multio wheel multio-0.2.4.dist-info wheel-0.32.0-py3.7.egg-info cecilmatoMacBook-Pro:site-packages cecil$ chmod a+x douyin_downloader.py cecilmatoMacBook-Pro:site-packages cecil$ python douyin_downloader.py --help Traceback (most recent call last): File "douyin_downloader.py", line 21, in from docopt import docopt ModuleNotFoundError: No module named 'docopt'

shengzicai commented 5 years ago

Last login: Thu Nov 1 12:42:42 on ttys000 cecilmatoMacBook-Pro:~ cecil$ /Users/cecil/Downloads/douyin_downloader ; exit; Input user_id:70076885833 Choose action[1.favorite, 2.post] default 1:2 Do you want to follow user? [yes/no] default no: Input video save dir *default /Users/cecil/Movies/douyin/: begin to download 70076885833's post video to /Users/cecil/Movies/douyin/ ... 2018-11-01 12:55:58,778 douyin_downloader.py:60 MainThread:crawler_user_video INFO] start download 70076885833's favorite video to /Users/cecil/Movies/douyin/ with 20 concurrency ... 2018-11-01 12:55:59,277 util.py:199 MainThread:curl WARNING] curl https://aweme.snssdk.com/aweme/v1/aweme/post/ with method=GET failed, retry with new signed params! Traceback (most recent call last): File "site-packages/trio/_ssl.py", line 455, in _retry File "ssl.py", line 689, in do_handshake ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "douyin_downloader/util.py", line 188, in curl s_params = await self.get_signed_params(params) File "douyin_downloader/util.py", line 177, in get_signed_params common_params, token = await self.get_sign_params(force) File "douyin_downloader/util.py", line 162, in get_sign_params device = await self.get_device() File "douyin_downloader/util.py", line 135, in get_device resp = await self.s.get(url) File "site-packages/asks/sessions.py", line 170, in request File "site-packages/asks/utils.py", line 15, in timeout_manager File "site-packages/asks/sessions.py", line 361, in _grab_connection File "site-packages/asks/sessions.py", line 335, in _make_connection File "site-packages/asks/sessions.py", line 103, in _connect File "site-packages/asks/sessions.py", line 81, in _open_connection_https File "site-packages/multio/_event_loop_wrappers.py", line 30, in trio_open_connection File "site-packages/trio/_ssl.py", line 602, in do_handshake File "site-packages/trio/_ssl.py", line 224, in ensure File "site-packages/trio/_ssl.py", line 568, in _do_handshake File "site-packages/trio/_ssl.py", line 462, in _retry trio.BrokenResourceError

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "site-packages/trio/_ssl.py", line 455, in _retry File "ssl.py", line 689, in do_handshake ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "douyin_downloader/douyin_downloader.py", line 116, in cmd_run() File "douyin_downloader/douyin_downloader.py", line 111, in cmd_run trio.run(main, user, action, follow, save_dir, concurrency) File "site-packages/trio/_core/_run.py", line 1337, in run File "douyin_downloader/douyin_downloader.py", line 95, in main await crawler_user_video(user, func_dict, action, save_dir, concurrency) File "douyin_downloader/douyin_downloader.py", line 66, in crawler_user_video nursery.start_soon(download_videos, _receiver, downloader) File "site-packages/trio/_core/_run.py", line 397, in aexit File "douyin_downloader/douyin_downloader.py", line 52, in generate_videos async for video in func_dict[action](user, repeat_func=repeat_func): File "douyin_downloader/douyin_tool.py", line 210, in get_post_list video_list, hasmore, max_cursor = await self._get_video_list("https://aweme.snssdk.com/aweme/v1/aweme/post/", user_id, max_cursor) File "douyin_downloader/douyin_tool.py", line 182, in _get_video_list resp = await self.sign_util.curl(url, video_params) File "douyin_downloader/util.py", line 200, in curl await self.get_sign_params(True) # force fresh self.sign File "douyin_downloader/util.py", line 162, in get_sign_params device = await self.get_device() File "douyin_downloader/util.py", line 135, in get_device resp = await self.s.get(url) File "site-packages/asks/sessions.py", line 170, in request File "site-packages/asks/utils.py", line 15, in timeout_manager File "site-packages/asks/sessions.py", line 361, in _grab_connection File "site-packages/asks/sessions.py", line 335, in _make_connection File "site-packages/asks/sessions.py", line 103, in _connect File "site-packages/asks/sessions.py", line 81, in _open_connection_https File "site-packages/multio/_event_loop_wrappers.py", line 30, in trio_open_connection File "site-packages/trio/_ssl.py", line 602, in do_handshake File "site-packages/trio/_ssl.py", line 224, in ensure File "site-packages/trio/_ssl.py", line 568, in _do_handshake File "site-packages/trio/_ssl.py", line 462, in _retry trio.BrokenResourceError [9866] Failed to execute script douyin_downloader logout Saving session... ...copying shared history... ...saving history...truncating history files... ...completed. Deleting expired sessions...none found.

[进程已完成]

HeLiangHIT commented 5 years ago

报错 ModuleNotFoundError: No module named 'docopt' 是因为没有安装依赖,请在源码目录执行 python3 -m pip install -r requirement.txt 安装依赖,然后再运行。

HeLiangHIT commented 5 years ago

关于错误 ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777) 确实是代码里去掉证书校验时遗漏了,代码已经修复,请下载最新版本试试。