python - 如何使用 URLLib.request 循环访问 URL 并下载图像?
问题描述
我当前的程序看起来像这样
import os
import urllib.request
baseUrl = "https://website.com/wp-content/upload/xxx/yyy/zzz-%s.jpg"
for i in range(1,48):
url = baseUrl % i
urllib.request.urlretrieve(baseUrl, os.path.basename(url))
很久没写过python了,不过我以前用python2.7的时候用urllib2写的。
它应该替换 URL 中的 %s 并循环 1-48,并将所有图像下载到脚本所在的目录。但是我得到了很多错误。
编辑:这是引发的错误。
Traceback (most recent call last):
File "download.py", line 9, in <module>
urllib.request.urlretrieve(url, os.path.basename(url))
File "C:\Program Files\Python37\lib\urllib\request.py", line 247, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File "C:\Program Files\Python37\lib\urllib\request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "C:\Program Files\Python37\lib\urllib\request.py", line 531, in open
response = meth(req, response)
File "C:\Program Files\Python37\lib\urllib\request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Program Files\Python37\lib\urllib\request.py", line 569, in error
return self._call_chain(*args)
File "C:\Program Files\Python37\lib\urllib\request.py", line 503, in _call_chain
result = func(*args)
File "C:\Program Files\Python37\lib\urllib\request.py", line 649, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
解决方案
urllib.request
仅在 Python 3 上可用,因此您必须在 Python 3 中运行代码。
推荐阅读
- javascript - 防止 React 最终表单步骤验证错误显示
- ios - 如何在 NSSecureCoding 中使用 CVImageBuffer 属性?
- api - Ecobee 开发者 API -- 举行活动
- linux - 如何在 shell 脚本中获取特定文件夹的文件名列表?
- python - 当不同列中的值在两个值之间时,Python需要获取一列数据的平均值或平均值
- angular - Angular 11:尝试使用 combineLatest 为对象赋值
- openapi - 基于 Maven 的示例引发异常
- mysql - 带有正则表达式的 MySQL 查询
- erlang - erlang 的 `binary_to_term` 是否总是能够读取任何以前版本的二进制 `term_to_binary` 生成的?
- angular - 为什么 app_initializer 无法导航到另一个组件,但其他一切正常?