这是我的代码:
import urllib.request
imglinks = ["http://www.katytrailweekly.com/Files/MalibuPokeMatt_©Marple_449-EDITED_15920174118.jpg"]
for link in imglinks:
filename = link.split('/')[-1]
urllib.request.urlretrieve(link, filename)
Run Code Online (Sandbox Code Playgroud)
它给了我错误:
UnicodeEncodeError: 'ascii' 编解码器无法编码字符 '\xa9'
我该如何解决这个问题?我尝试使用.encode('utf-8'),但它给了我:
类型错误:不能在类似字节的对象上使用字符串模式
这里的问题不是编码本身,而是传递给“请求”的正确编码。
您需要按如下方式引用网址:
import urllib.request
import urllib.parse
imglinks = ["http://www.katytrailweekly.com/Files/MalibuPokeMatt_©Marple_449-EDITED_15920174118.jpg"]
for link in imglinks:
link = urllib.parse.quote(link,safe=':/') # <- here
filename = link.split('/')[-1]
urllib.request.urlretrieve(link, filename)
Run Code Online (Sandbox Code Playgroud)
这样您的 © 符号就会%C2%A9按照 Web 服务器的要求进行编码。
safe指定该参数以防止quote在:之后也被修改http。
由您来修改代码以使用正确的原始文件名保存文件。;)
| 归档时间: |
|
| 查看次数: |
1103 次 |
| 最近记录: |