我想从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 现在我想知道是否有扩展的get .crx的通用方法,问题是Google如何加密
bjclhonkhgkidmlkghlkiffhoikhaajg
成
OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA
?
任何想法都会有所帮助。
对于我的一个扩展,我必须自动下载其他CRX,只知道扩展ID。我通过打开以下网址解决了这个问题:
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月以来它一直很适合我,所以它看起来很可靠。
要从给定的if下载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 file.https://chrome.google.com/webstore/detail/crx-extractordownloader/ajkhmmldknmfjnmeedkbkkojgobmljda
此Github repo的代码也可用
CRX文件本身可以直接从中下载
https://clients2.google.com/service/update2/crx?response=redirect&prodversion=[PRODVERSION]&acceptformat=crx2,crx3&x=id%3D[EXTENSIONID]%26uc
(2018年新增)acceptformat=crx2,crx3
指示服务器也响应the CRX3 format中的扩展(当扩展名不可用作CRX2时,而不是204 No Content)。
如果您使用的扩展包含特定于操作系统的模块(例如NaCl),则必须添加其他参数(os
,arch
,nacl_arch
)。
有关生成完整CRX下载URL的完整逻辑,请参阅get_crx_url
中的https://github.com/Rob--W/crxviewer/blob/master/src/cws_pattern.js函数。
这是Chrome扩展程序源代码查看器扩展程序的一部分,可在Chrome网上应用店中找到:https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin
请注意,在Chrome中打开上一个网址不会触发下载,因为Chrome会自动拦截其Content-Type
设置为application/x-chrome-extension
的响应。如果您想以编程方式在Chrome扩展程序中下载crx文件,请将MIME类型更改为application/octet-stream
(例如,在src/lib/crx-to-zip.js
中完成)。
这个网站就是这样做的:
我写了一个小的python脚本来自动化@serg @Rob W的过程
https://gist.github.com/arulrajnet/2424bc1ffc40324f3786
你也可以使用它。
python ChromeAppDownloader.py -u https://chrome.google.com/webstore/detail/google-maps/lneaknkopdijkpnocmklfnjbeapigfbh
这是你必须使用的方式。
创建书签添加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"); })();
谢谢
这是一种较低技术的方式,而不是使用提琴手,我意识到这已经有三年了,但我总是想看看是否其他人已经解决了这个问题。所以我发现有人做了,我只是成功地使用了他们的解决方案几次。他们的解决方案是一个可以下载其他扩展的扩展,名为Give Me CRX:
https://chrome.google.com/webstore/detail/give-me-crx/acpimoebmfjpfnbhjgdgiacjfebmmmci
此外,我建议尝试这个网站http://crxextractor.com。在这里,您可以通过它的Chrome Webstore URL下载扩展程序,并在浏览器中提取它的源代码,无需其他软件,一切只需点击一两下即可完成。
这篇文章中没有任何手动方式适合我,所以我搜索了一个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://clients2.google.com/service/update2/crx?response=redirect&prodversion=[PRODVERSION]&x=id%3D[EXTENSIONID]%26uc
PRODVERSION是Chrome版本。 (从设置中获取 - >帮助 - >关于Google Chrome)。例如:版本69.0.3497.100
(官方版)(64位)
EXTENSIONID是扩展名的ID。例如:这是一个示例插件,https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji?hl=en的id是hmhgeddbohgjknpmjagkdomcpobmllji