you-get icon indicating copy to clipboard operation
you-get copied to clipboard

add except

Open cmershen1 opened this issue 4 years ago • 1 comments

如果3次重试失败,会直接抛异常,且重试的时候只能从头开始

cmershen1 avatar Apr 02 '20 03:04 cmershen1

If call api of bilibili failed after retrying 3 times, it will raise an exception and stop. So I want to catch this error.

Traceback (most recent call last):
  File "/usr/local/bin/you-get", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.6/dist-packages/you_get/__main__.py", line 92, in main
    main(**kwargs)
  File "/usr/local/lib/python3.6/dist-packages/you_get/common.py", line 1763, in main
    script_main(any_download, any_download_playlist, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/you_get/common.py", line 1651, in script_main
    **extra
  File "/usr/local/lib/python3.6/dist-packages/you_get/common.py", line 1307, in download_main
    download(url, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/you_get/common.py", line 1754, in any_download
    m.download(url, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/you_get/extractor.py", line 48, in download_by_url
    self.prepare(**kwargs)
  File "/usr/local/lib/python3.6/dist-packages/you_get/extractors/bilibili.py", line 173, in prepare
    self.download_playlist_by_url(self.url, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/you_get/extractors/bilibili.py", line 743, in download_playlist_by_url
    self.__class__().download_playlist_by_url(url, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/you_get/extractors/bilibili.py", line 571, in download_playlist_by_url
    html_content = get_content(self.url, headers=self.bilibili_headers(referer=self.url))
  File "/usr/local/lib/python3.6/dist-packages/you_get/common.py", line 439, in get_content
    response = urlopen_with_retry(req)
  File "/usr/local/lib/python3.6/dist-packages/you_get/common.py", line 417, in urlopen_with_retry
    raise http_error
  File "/usr/local/lib/python3.6/dist-packages/you_get/common.py", line 408, in urlopen_with_retry
    return request.urlopen(*args, **kwargs)
  File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.6/urllib/request.py", line 532, in open
    response = meth(req, response)
  File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.6/urllib/request.py", line 564, in error
    result = self._call_chain(*args)
  File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.6/urllib/request.py", line 756, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "/usr/lib/python3.6/urllib/request.py", line 532, in open
    response = meth(req, response)
  File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.6/urllib/request.py", line 570, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidde

cmershen1 avatar Apr 02 '20 03:04 cmershen1