【问题标题】:Python - download url and save with generic filenamePython - 下载网址并使用通用文件名保存
【发布时间】:2016-08-24 00:35:37
【问题描述】:

我正在尝试从 fanart.tv api 下载同人画图像。因此,我编写了一个脚本来构建 api 调用并收集 URL。代码可能需要一些清理,但我想它现在可以正常工作: APICaller.py

我现在的问题是使用 URL 中给出的通用文件名保存图像

例如 我用这些参数调用我的脚本:

python APICaller.py -a "Madonna" -p "C:/temp" -n "Madonna - Hung up"

结果我收到了:

 'http://assets.fanart.tv/fanart/music/79239441-bfd5-4981-a70c-55c3f15c1287/artistbackground/madonna-4fe25d4f1b951.jpg', 'http://assets.fanart.tv/fanart/music/79239441-bfd5-4981-a70c-55c3f15c1287/artistbackground/madonna-4fe2766aac587.jpg', 

...等等

现在我想将所有图像保存到 /extrafanart/madonna-4fe25d4f1b951.jpg ...

最好的处理方法是什么? urlparse, split 或 regex 解析可能吗?

请帮忙,这很令人沮丧:(

【问题讨论】:

  • 看起来你得到了一个数组,在这种情况下你应该遍历结果并单独下载它们,或者你可以选择数组中的第一个元素。您能否澄清在 API 调用和预期输出之后您的确切输入是什么?
  • 我不确定我是否理解你的问题。你的意思是如果我知道响应会是什么样子?

标签: python api parsing url download


【解决方案1】:
import os
import urllib
for url in urllist:
    filename = url.rstrip('/').rsplit('/', 1)[-1]
    path = os.path.join(os.path.join(os.path.sep, 'extrafanart'), filename)
    urllib.urlretrieve(url, path)        

【讨论】:

    猜你喜欢
    • 2015-06-09
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多