如何从Chrome网上商店下载给定ID的CRX文件?

我想从webstore下载扩展名为.crx的文件,我使用fiddler来分析networking请求,当我从webstore安装扩展,并得到它。
例如,对于扩展程序: https : //chrome.google.com/webstore/detail/bjclhonkhgkidmlkghlkiffhoikhaajg
下载链接是:

https://clients2.googleusercontent.com/crx/download/OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOp​​pHWtQsRU3-iGrrrrA/extension_1_7_11.crx
现在我想知道是否有一个扩展名为.crx的通用方法,问题是Google如何encryption

bjclhonkhgkidmlkghlkiffhoikhaajg

OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA

任何想法都将有所帮助。

对于我的一个扩展,我不得不自动下载其他CRX,只知道扩展名。 我通过打开以下URL解决了这个问题:

 http://clients2.google.com/service/update2/crx?response=redirect&x=id%3D<EXTENSION_ID_HERE>%26uc%26lang%3Den-US&prod=chrome 

此页面会将您转到https://clients2.googleusercontent.com/crx/download/地址。

我不记得我是如何使用这个URL的(这是在网页源代码或我使用networking嗅探器),但自从去年12月以来它一直在为我工作,所以它看起来很可靠。

CRX文件本身可以直接从中下载
https://clients2.google.com/service/update2/crx?response=redirect&prodversion= [PRODVERSION] &x=id%3D [EXTENSIONID] %26uc

  • [PRODVERSION]是Chrome的版本, 至less必须是31.0.1609.0
  • [EXTENSIONID]是扩展的ID

如果您使用的扩展名包含特定于操作系统的模块(例如NaCl),则必须添加其他参数( osarchnacl_arch )。

有关生成完整的CRX下载URL的完整逻辑,请参阅https://github.com/Rob–W/crxviewer/blob/master/src/cws_pattern.js中的;get_crx_url函数。

这是Chrome网上应用店中的Chrome扩展程序源代码查看器扩展的一部分: https : //chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin


请注意,在Chrome中打开以前的url不会触发下载,因为Chrome会自动截取Content-Type设置为application/x-chrome-extension回复。 如果您想以编程方式下载Chrome扩展中的crx文件,请将MIMEtypes更改为application/octet-stream (例如,在src/lib/crx-to-zip.js )。

有这个网站只是为了做到这一点:

http://chrome-extension-downloader.com/

我写了一个小的python脚本来自动化这个过程@serg @Rob W

https://gist.github.com/arulrajnet/2424bc1ffc40324f3786

你也可以使用它。

 python ChromeAppDownloader.py -u https://chrome.google.com/webstore/detail/google-maps/lneaknkopdijkpnocmklfnjbeapigfbh 

这是你如何使用。

创build一个书签添加javascript函数作为地址。 浏览到你要下载的Chrome扩展,然后点击书签,它应该开始下载。

 javascript:(function(){ var pathname = location.pathname;pathArray = pathname.split("/"); location = ("http://clients2.google.com/service/update2/crx?response=redirect&x=id"+"%" + "3D" + pathArray[pathArray.length -1]+"%" + "26uc%" + "26lang%" + "3Den-US&prod=chrome"); })(); 

谢谢

这是一个低技术的做法,而不是使用小提琴手,我意识到现在已经三岁了,但我总是看看别人是否已经解决了这个问题。 所以我发现有人做了,而且我成功地多次使用了他们的解决scheme。 他们的解决scheme是一个扩展,可以下载其他扩展名为Give Me CRX:

https://chrome.google.com/webstore/detail/give-me-crx/acpimoebmfjpfnbhjgdgiacjfebmmmci

另外,我build议尝试这个网站http://crxextractor.com 。 在这里,您可以通过Chrome Webstore URL下载扩展程序,并在浏览器中提取它的源代码,无需额外的软件,一切都可以通过一两次完成。