下载 image/png - RCurl

Download image/png - RCurl

我正在尝试使用 Clearbit.com 的免费徽标 API (https://logo.clearbit.com/:domain) 下载一些公司徽标。

要试用该工具,只需将 https://logo.clearbit.com/nike.com 粘贴到您的网络浏览器中即可。

目标是将 GET 请求的响应保存为 PNG 文件。这是我正在使用的代码示例,它失败了。

    library(RCurl)
    url <- "https://logo.clearbit.com/basf.com"
    png <- getURL(url, httpheader = "image/png", ssl.verifypeer = F)

这会产生以下错误消息:

    Error in curlPerform(curl = curl, .opts = opts, .encoding = .encoding) : 
    embedded nul in string:'‰PNG\r\n2\n[=12=][=12=][=12=]\rIHDR[=12=][=12=][=12=][=12=][=12=][=12=]\b[=12=]6[=12=][=12=][=12=]Ã>aË[=12=][=12=][=12=][=12=]4gAMA[=12=][=12=]±\vüa[=12=]5[=12=][=12=][=12=] cHRM[=12=][=12=]z&[=12=][=12=]€„[=12=][=12=]ú[=12=][=12=][=12=]€è[=12=][=12=]u0[=12=][=12=]ê`[=12=][=12=]:˜[=12=][=12=]7pœºQ<[=12=][=12=][=12=][=12=]6bKGD[=12=]ÿ[=12=]ÿ[=12=]ÿ ½§“[=12=][=12=][=12=]\atIME\aß[=12=]66228_nn[=12=]5[=12=][=12=]7$IDATxÚíyx[Õ÷?÷^IW»dË–÷5v6'qœ•¤$!%$¡P(]0Z†y™2CK\aZ[=12=]6ž–ç-Ó…¶Ó>}g\nü¥lçi¡e:L10(…°¦¤$$„fOììÞâ}·,YÒ]æ7+"ŠäÄÄv3ɽŸ<y2stîÑ9ß{öó;Â뇟Ô11,â…N€É…Å4€Á1[=12=]5`pL[=12=]104S[=12=][=12=]6Ç4€Á1[=12=]5`pL[=12=]104S[=12=][=12=]6Ç2•‘9­^<r6ƒ£Œ*#IwQÈu•eüNgèxòÿ’hÁoÏG4$B±>"ñá\v?—<S([=12=]êœË\bºËÙÛþ6£§5¬WΡ¶`mÆo½qd,œßžÇü‚µØ-®¤_W¨‘[=12=]3›Q´è…ΧK–I\vÀ#çà·ç‘ï©ÄïÈÏ0ÆkÏ[=12=]5 y`?]¡¦47I´RW¸6«dçP÷{Œ*#ÌÊ]NÐ]Žª)ìïÜt¡óé’eÒ[=12=]2(ò΢Ä_sÖ0.[6[=12=]ý‘6ú#miþ9Î2¬’þH;Í[=12=]3û[=12=]10[=12=]5‘ùùW’ç©à`×f4]M†7[=12=]4‘ «4€P¬‘Ø[=12=]Ö„ä8K3Ïj'¦FD+[=12=]5ž*|ö º®Ñ>|,-\r6«—|Ï\f\6?è:‘ø0¡ã„bý[=12=]Ø-.|ö<¢Ê\b1%D©7. p¤g;N«—|O5.›7506íáäÐዦ֚´[=12=]:C'\bÇ\a[=12=]1(ñÏÅiõ¦…q'[=12=]4à°z¨+\(XÆ\n»77ª®$kˆS1600é[=12=]4Æú7n9›¡

我翻遍了文档,还是没能解决这个问题,请指教。

P.S。这是我在 Whosebug 上的第一个 post,请随时提出有关风格和一般准则的建议。

谢谢, 瑞安

试试这个

library(RCurl)
url <- "https://logo.clearbit.com/basf.com"
png <- getBinaryURL(url, httpheader = "image/png", ssl.verifypeer = F) # download
writeBin(png, con = tf <- tempfile(fileext = ".png")) # save
shell.exec(tf) # open file on windows

RCurl 的替代方法是 Jeroen Ooms 的新 curl 包,它提供了 libcurl 的现代界面。

## install.packages("curl")
library("curl")
curl_download(url = "https://logo.clearbit.com/basf.com",
              destfile = "~/foo.png")

这是我下载的图片: