【问题标题】:Insert image from URL从 URL 插入图像
【发布时间】:2018-01-19 14:12:31
【问题描述】:

以下代码适用于大多数图像 URL,但对于这个特定 URL,我收到错误:

Sub test()
Sheets(1).Shapes.AddPicture "https://images-na.ssl-images-amazon.com/images/M/MV5BYzVlY2JiODctNGMzNC00OWE5LTg3MTEtNDQ3NDYxNjIxNTBiXkEyXkFqcGdeQXVyNTM3MDMyMDQ@._V1_.jpg" _
                          , msoFalse, msoTrue, 100, 100, 500, 600
End Sub

运行时错误“1004”:找不到指定的文件

是否由指定此特定 URL 字符串的方式引起(与 VBA 不兼容)?还是您认为这与主机阻止访问有关?谢谢。

【问题讨论】:

  • 我的猜测是他们(亚马逊)正在限制对它的访问,把它当作你“盗链”到他们的图像,从而“窃取他们的带宽” - 如果你循环该代码,你会破坏他们的服务器。来自同一服务器的其他图片是否适合您?
  • 谢谢,我不认为来自同一服务器的以下 URL 可以正常工作:(images-na.ssl-images-amazon.com/images/I/…) 使用上面的代码。我怀疑它与所需 URL 中字符串的最后一部分有关,特别是; “MDQ@._V1_.jpg”不兼容,虽然我可能是错的。
  • 我用您的代码尝试了该 URL,并且与其他图像有相同的错误。
  • 这很奇怪,因为即使在我的新 Excel 实例上它也能正常工作。更奇怪的是,如果我在没有 VBA 的情况下手动执行初始 URL 的过程(单击插入图片 -> 指定原始 url -> 单击打开),它工作正常!所以似乎完全与 VBA 相关。
  • 可能需要对字符进行编码:https://images-na.ssl-images-amazon.com/images/M/MV5BYzVlY2JiODctNGMzNC00OWE5LTg3MTEtNDQ3NDYxNjIxNTBiXkEyXkFqcGdeQXVyNTM3MDMyMDQ%40._V1_.jpg

标签: vba excel web-scraping


【解决方案1】:

尝试寻找*.png的图片。然后就可以了。

我已经尝试过使用来自同一亚马逊网站的 PNG -

Sub Test()

     Sheets(1).Shapes.AddPicture _
                 "https://images-na.ssl-images-amazon.com/images/I/31TN1u5GEqL.png",  _
                 msoFalse, msoTrue, 100, 100, 500, 600
End Sub

MSDN 中,他们以*.bmp 文件举例。

编辑: 但是,*.jpg 可以在许多其他网站上使用。因此,亚马逊可能正在限制它。

【讨论】:

  • 谢谢,这很奇怪,因为来自同一主机的以下 URL 似乎与 jpg (images-na.ssl-images-amazon.com/images/I/…) 一样正常。我猜要么是亚马逊限制了某些 URL,要么是问题与不兼容 VBA 的特定字符串结构有关。
  • @ExamOrph - 确实很奇怪。这可能是由于@ 符号。您可以请求他们的支持,但总的来说他们不喜欢被抓取 - sellercentral.amazon.com/forums/message.jspa?messageID=2723828 但是,他们有 API,每个人都可以使用 :)
  • 谢谢,经过进一步审查,我几乎可以肯定它与 VBA 相关。根据OP上的上述cmets,我可以使用原始URL手动插入图片,但只有在使用VBA复制时才会出现错误。我会继续调查,看看它会把我引向何方!再次感谢。
猜你喜欢
  • 2017-08-10
  • 2016-06-24
  • 1970-01-01
  • 2011-01-18
  • 2021-07-25
  • 2020-10-18
  • 2012-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多