我想从webstore下载一个扩展的。crx文件,当我从webstore安装一个扩展并得到它时,我使用fiddler来分析网络请求。
例如,对于扩展名:https://chrome.google.com/webstore/detail/bjclhonkhgkidmlkghlkiffhoikhaajg
下载链接:
https://clients2.googleusercontent.com/crx/download/OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA/extension_1_7_11.crx
现在我想知道是否有一个通用的方法来获取扩展名的。crx,问题是谷歌如何加密
bjclhonkhgkidmlkghlkiffhoikhaajg
到
OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA
?
CRX文件本身可以直接从
下载https://clients2.google.com/service/update2/crx?response=redirect&prodversion=[PRODVERSION]&acceptformat=crx2,crx3&x=id%3D[EXTENSIONID]%26uc
- [PRODVERSION]是Chrome的版本,它必须是31.0.1609.0 至少,和
- [EXTENSIONID]是扩展名的ID
(2018年新增) acceptformat=crx2,crx3
指示服务器也以CRX3格式的扩展响应(而不是204 No Content,当扩展不可用于CRX2时)。
如果您使用的扩展包含特定于操作系统的模块(例如NaCl),那么您必须添加额外的参数(os
, arch
, nacl_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文件,请将mime类型更改为application/octet-stream
(例如在src/lib/crx-to-zip.js
中完成)。
对于我的一个扩展,我必须下载其他CRXs自动只知道扩展ID。我通过打开以下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的(它要么是在页面源代码的某个地方,要么是我使用网络嗅探器),但它自去年12月以来一直为我工作得很好,所以它看起来很可靠。
我写了一个小的python脚本来自动化这个过程@serg @Rob W
https://gist.github.com/arulrajnet/2424bc1ffc40324f3786你也可以用这个
python ChromeAppDownloader.py -u https://chrome.google.com/webstore/detail/google-maps/lneaknkopdijkpnocmklfnjbeapigfbh
你必须这样使用。
你可以使用下面的URL模板,
https://clients2.google.com/service/update2/crx?response=redirect&prodversion=[PRODVERSION]&x=id%3D[EXTENSIONID]%26uc
PRODVERSION是Chrome版本。(从设置->帮助->关于谷歌浏览器)。版本69.0.3497.100
(官方版本)(64位)
EXTENSIONID是扩展的id。例如:这是一个示例插件,https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji?hl=en id是hmhgeddbohgjknpmjagkdomcpobmllji
所以下载的示例请求将是https://clients2.google.com/service/update2/crx?response=redirect&prodversion=69.0.3497.100&x=id%3Dhmhgeddbohgjknpmjagkdomcpobmllji%26uc
另一种获取crx文件的方法。
-
复制扩展名的url,例如:https://chrome.google.com/webstore/detail/tiff-viewer/fciggfkkblggmebjbekbebbcffeacknj?hl=es
-
在网站http://crxextractor.com/
-
点击"START FOR free"选项。
-
将扩展名的url粘贴到文本框中
-
点击"下载"选项。
-
点击"GET . crx "选项。
这是一种比使用fiddler更低技术含量的方法,我意识到这是三年前的事了,但我总是看看别人是否已经解决了这个问题。所以我发现有人这么做了,我只是成功地使用了他们的解决方案几次。他们的解决方案是一个扩展,可以下载其他扩展,称为给我CRX:
https://chrome.google.com/webstore/detail/give-me-crx/acpimoebmfjpfnbhjgdgiacjfebmmmci
要从给定id下载chrome扩展,您可以使用如下命令
var currentEXTId = 'bjclhonkhgkidmlkghlkiffhoikhaajg';
let downloadURL = https://clients2.google.com/service/update2/crx?response=redirect&x=id%3D" + currentEXTId + "%26uc&prodversion=32;
上面一个是chrome扩展的下载URL。还有一个chrome扩展,可以帮助您下载chrome扩展作为zip或crx文件。https://chrome.google.com/webstore/detail/crx-extractordownloader/ajkhmmldknmfjnmeedkbkkojgobmljda
也可以在这个Github repo
创建书签,添加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"); })();
谢谢
另外,我建议尝试这个网站http://crxextractor.com。在这里,您可以通过它的Chrome Webstore URL下载扩展,并在浏览器中提取它的源代码,不需要额外的软件,一切都在点击一两下完成。
这适用于Microsoft Edge Chromium:
https://edge.microsoft.com/extensionwebstorebase/v1/crx?response=redirect&prod=chromiumcrx&prodchannel=&x=id%3D<EXTENSION_ID_HERE>%26installsource%3Dondemand%26uc
我制作了一个简单的Python脚本,用于从Chrome Web Store下载扩展作为CRX文件:
它没有外部依赖,可以与Python 2或Python 3一起使用。
感谢Rob W提供的原始解决方案。
这篇文章中没有任何手动方式适合我,所以我搜索了一个URL来直接下载扩展。找到这个和工作完美的我。
https://clients2.google.com/service/update2/crx?response=redirect&prodversion=49.0&x=id%3D###EXTENSION_ID###%26installsource%3Dondemand%26uc
您必须将###EXTENSION_ID###替换为chrome商店中的扩展id。它是URL的一部分。
示例Google翻译扩展:
https://clients2.google.com/service/update2/crx?response=redirect&prodversion=49.0&x=id%3Daapbdbdomjkkjkaonfhkkikfgjllcleb%26installsource%3Dondemand%26uc
您使用https://www.crx4chrome.com/和搜索您的扩展名,它也有该扩展名的不同版本,一旦您点击它下载。crx文件