【问题标题】:wget.download() only works for some linkswget.download() 仅适用于某些链接
【发布时间】:2020-06-20 09:28:29
【问题描述】:

我有一些链接的列表(它们是 pdf 文件)。我正在为列表中的每个链接运行wget.download()。但是,只有其中一些被下载,然后我得到:

File "/home/.local/lib/python3.6/site-packages/wget.py", line 526, in download
    (tmpfile, headers) = ulib.urlretrieve(binurl, tmpfile, callback)
  File "/usr/lib/python3.6/urllib/request.py", line 248, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
  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 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 404: Not Found

我也尝试使用r = requests.get(link),但问题仍然相同,另外,我收到此错误:

  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

未下载的链接示例:

https://cnds.jacobs-university.de/courses/sads-2020/p6.pdf

如果我在浏览器上打开链接,我会下载。此外,这种方法一直有效,直到几个月前。想知道为什么它不再工作了

【问题讨论】:

    标签: python web-scraping wget urlrequest urlparse


    【解决方案1】:

    我目前还不能发表评论,但是您是否尝试过使用浏览器手动下载文件?如果可行,那么问题一定是 wget 由于某种原因无法达到目标。

    【讨论】:

    • 这是一个很好的起点。我还偶尔看到 SSL/TLS 证书的奇怪行为,以及通过代理的奇怪行为,伪装成其他 HTTP 错误。
    • 是的,如果我在浏览器上打开链接,我会下载。此外,这一直有效,直到几个月前。 Idk 为什么它不再工作了@Frank
    • 你选择wget有什么原因吗?我倾向于直接使用requests
    • 那也行不通。问题还是一样,只是下载了一些链接@Frank
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    相关资源
    最近更新 更多