【问题标题】:GET pictures from a url and then rename the picture从 url 获取图片,然后重命名图片
【发布时间】:2012-04-30 12:20:56
【问题描述】:

我有一个包含很多文章编号的 Excel 列表,例如。 “23378847”。我希望将列表中所有文章编号的图片存储在我的文件夹中。

但结果会如下。应该是 23378847.jpg 而不是 152499

http://media.byggtjeneste.no/media/bilde/152499/LargeThumbnail
或
http://www.nobb.no/Nobbnr/OrginalBilde/23378847/152499

有没有一种方法可以让我制作一个脚本来读取我的文件并使用与列表中相同的文章编号保存图片?

【问题讨论】:

  • 呃...我的英语很糟糕...抱歉 :) 不太好。在我的列表中,我得到了我的号码,该网址有图片,我想将所有图片下载到我的文件夹中。但是正如您所看到的,该网站有一个奇怪的结尾/重命名 (152499),这给我带来了问题。
  • 他们说我需要使用“GET /ProduktInfo.asmx/HentBildeLenke?sModulNr=string&sBilledStorrelse=string HTTP/1.1 Host: produktinfo.byggtjeneste.no”等等。顺便说一句:感谢您抽出时间 Shegit :)
  • 好的,无论您从哪里获得帮助,都很好。对于您的问题,您应该重写它以明确您的意思。将它放在您的问题中,而不仅仅是在您的 cmets 中。

标签: excel vba image


【解决方案1】:

这是一个可以帮助你的示例。

我假设您的 Excel 文件将如下所示。请根据需要修改代码。

Option Explicit

Private Declare Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" (ByVal pCaller As Long, _
ByVal szURL As String, ByVal szFileName As String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Dim Ret As Long

'~~> This is where the images will be saved. Change as applicable
Const FolderName As String = "C:\Temp\"

Sub Sample()
    Dim ws As Worksheet
    Dim LastRow As Long, i As Long
    Dim strPath As String

    '~~> Name of the sheet which has the list
    Set ws = Sheets("Sheet1")

    LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row

    For i = 2 To LastRow '<~~ 2 because row 1 has headers
        strPath = FolderName & ws.Range("A" & i).Value & ".jpg"

        Ret = URLDownloadToFile(0, ws.Range("B" & i).Value, strPath, 0, 0)

        If Ret = 0 Then
            ws.Range("C" & i).Value = "File successfully downloaded"
        Else
            ws.Range("C" & i).Value = "Unable to download the file"
        End If
    Next i
End Sub

【讨论】:

  • 嗨,悉达多!非常好:) 没有我的列表没有链接...只有 23378847 等在一列中。链接需要在宏内。
  • 那么宏如何知道每个 ID 的链接是什么?
  • 我使用 A 列的 .chain formel(不确定该 formel 的 EN 单词)建立链接
  • 了不起的人@SiddharthRout 你应该认真地为此获奖
  • @Mowgli 感谢您的赞赏。它本身就是一个奖项;)
【解决方案2】:

对于那些不想处理 VBA 或任何其他编程语言的人来说,有一个桌面网络应用程序让它变得超级简单。

只需放入excel文件,它会将excel文件中的所有图像(或文件)下载到您选择的文件夹中,如果B列上有名称,它也会重命名文件。

最新版本可以在https://github.com/btargac/excel-parser-processor找到。

【讨论】:

  • 并且即使URL中没有文件扩展名,这个应用程序也会从mime类型中读取并添加相应的扩展名,同时保存到文件系统,例如https://www.buraktarga.com/sample会被保存sample.jpg 或 sample.png 根据服务器响应的 MIME 类型。
猜你喜欢
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-04
  • 1970-01-01
  • 1970-01-01
  • 2021-01-24
相关资源
最近更新 更多