Chciałbym pobrać plik .crx rozszerzenia ze sklepu internetowego. Używam programu Fiddler do analizy żądania sieciowego, gdy instaluję rozszerzenie ze sklepu internetowego i otrzymuję je.
Na przykład w przypadku rozszerzenia: https://chrome.google.com/webstore/detail/bjclhonkhgkidmlkghlkiffhoikhaajg
link do pobrania to:
https://clients2.googleusercontent.com/crx/download/OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA/extension_1_7_11.crx
Teraz zastanawiam się, czy istnieje uniwersalna metoda get crx przedłużenia, problemem jest to, jak zrobił Google szyfrowanie
bjclhonkhgkidmlkghlkiffhoikhaajg
w
OgAAADQ_Loe5gfVPF2OUaB35tvex-NKlmA8V4K5YlWuvLCknMH7egLLmnMoFuCZePl_idE1GMf8jZC2KbjQqyyLDoDAAxlKa5eDp-z9frOppHWtQsRU3-iGrrrrA
?
każdy pomysł będzie pomocny.
Odpowiedzi:
W przypadku jednego z moich rozszerzeń musiałem automatycznie pobrać inne CRX, znając tylko identyfikator rozszerzenia. Rozwiązałem to, otwierając następujący adres URL:
ta strona przekieruje Cię na ten
https://clients2.googleusercontent.com/crx/download/
adres.Nie pamiętam już, jak wymyśliłem ten adres URL (albo był gdzieś w źródle strony, albo użyłem sniffera sieciowego), ale działa świetnie od grudnia zeszłego roku, więc wygląda na wiarygodny.
źródło
204 No Content
. Nawet po wymianie%3D
z=
i%26
z&
.204 No Content
też otrzymuję . Zobacz odpowiedź wspominającą o PRODVERSION, która działa.https://clients2.google.com/service/update2/crx?response=redirect&os=linux&arch=x86-64&nacl_arch=x86-64&prod=chromiumcrx&prodchannel=unknown&prodversion=49.0.2623.108&x=id%3D{ID}%26uc
z{ID}
identyfikatorem rozszerzenia.Sam plik CRX można pobrać bezpośrednio z
https://clients2.google.com/service/update2/crx?response=redirect&prodversion=[PRODVERSION]&acceptformat=crx2,crx3&x=id%3D[EXTENSIONID]%26uc
(Nowość w 2018 r.)
acceptformat=crx2,crx3
Instruuje serwer, aby odpowiadał również za pomocą rozszerzeń w formacie CRX3 (zamiast 204 No Content, gdy rozszerzenie nie jest dostępne jako CRX2).Jeśli rozszerzenie używasz zawiera moduły SO-specyficznych (np NaCl), następnie trzeba dodać dodatkowe parametry (
os
,arch
,nacl_arch
).Pełną logikę generowania pełnego adresu URL pobierania CRX można znaleźć w
get_crx_url
funkcji https://github.com/Rob--W/crxviewer/blob/master/src/cws_pattern.js .To jest część rozszerzenia Chrome Extension Source Viewer, dostępnego w Chrome Web Store: https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin
Pamiętaj, że otwarcie poprzedniego adresu URL w Chrome nie spowoduje pobrania, ponieważ Chrome automatycznie przechwytuje odpowiedzi, dla których
Content-Type
ustawionoapplication/x-chrome-extension
. Jeśli chcesz programowo pobrać plik crx w rozszerzeniu Chrome, zmień typ MIME naapplication/octet-stream
(np. Jak zrobiono wsrc/lib/crx-to-zip.js
).źródło
Jest ta strona internetowa, która właśnie to robi:
http://chrome-extension-downloader.com/
źródło
Napisałem mały skrypt w Pythonie, aby zautomatyzować ten proces, co @serg @Rob W.
https://gist.github.com/arulrajnet/2424bc1ffc40324f3786
możesz też tego użyć.
Oto, jak musisz używać.
źródło
Jest to mniej zaawansowany technicznie sposób niż użycie skrzypka i zdaję sobie sprawę, że ma to teraz trzy lata, ale zawsze sprawdzam, czy ktoś inny rozwiązał problem. Więc znalazłem, że ktoś to zrobił i po prostu kilka razy z powodzeniem użyłem ich rozwiązania. Ich rozwiązaniem jest rozszerzenie, które może pobierać inne rozszerzenia, o nazwie Give Me CRX:
https://chrome.google.com/webstore/detail/give-me-crx/acpimoebmfjpfnbhjgdgiacjfebmmmci
źródło
Polecam również wypróbować tę stronę http://crxextractor.com . Tutaj możesz pobrać rozszerzenie według adresu URL sklepu internetowego Chrome i wyodrębnić jego kod źródłowy w przeglądarce, bez dodatkowego oprogramowania, a wszystko można zrobić jednym lub dwoma kliknięciami.
źródło
Możesz użyć poniższego szablonu adresu URL,
PRODVERSION jest wersja Chrome. (pobierz to z ustawień -> Pomoc -> O Google Chrome). Np. Wersja
69.0.3497.100
(oficjalna kompilacja) (64-bitowa)EXTENSIONID jest id dla rozszerzenia. Przykład: Oto przykładowa wtyczka, https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji?hl=en identyfikator to
hmhgeddbohgjknpmjagkdomcpobmllji
Tak więc przykładowe żądanie pobrania będzie https://clients2.google.com/service/update2/crx?response=redirect&prodversion=69.0.3497.100&x=id%3Dhmhgeddbohgjknpmjagkdomcpobmllji%26uc
źródło
Utwórz zakładkę dodaj funkcję javascript jako adres. Przejdź do rozszerzenia Chrome, które chcesz pobrać, a następnie kliknij zakładkę i powinno rozpocząć się pobieranie.
Dzięki
źródło
location.pathname
zamiastlocation.href
. Jeśli adres URL zawiera?lang=en
, fragment ten nie powiedzie się. 2. Chrome nie „rozpocznie pobierania”, ale poprosi o zainstalowanie rozszerzenia.location.href = 'http://clients2.google.com/service/update2/crx?response=redirect&prodversion=42&x=' + encodeURIComponent('uc&id=' + location.pathname.split('/').pop());
javascript:(function(){ location.href = 'https://clients2.google.com/service/update2/crx?response=redirect&prodversion=38.0&x=' + encodeURIComponent('id=' + location.pathname.split('/').pop() + '%26installsource%3Dondemand%26uc'); })();
Aby pobrać rozszerzenie Chrome z podanego identyfikatora, możesz po prostu użyć w ten sposób
Powyższy adres to adres URL pobierania rozszerzenia Chrome. Istnieje również rozszerzenie do Chrome, które może pomóc w pobraniu rozszerzenia Chrome w postaci pliku zip lub crx. https://chrome.google.com/webstore/detail/crx-extractordownloader/ajkhmmldknmfjnmeedkbkkojgobmljda
Również kod pokazujący, jak to się robi, jest dostępny w tym repozytorium Github
źródło
Żaden z ręcznych sposobów w tym poście nie działa dla mnie, więc szukałem adresu URL, aby bezpośrednio pobrać rozszerzenie. Znajdź to i działa idealnie dla mnie.
Musisz zastąpić ### EXTENSION_ID ### identyfikatorem rozszerzenia ze sklepu Chrome. Jego część adresu URL.
Przykładowe rozszerzenie Tłumacza Google:
źródło
Działa to w przypadku przeglądarki Microsoft Edge Chromium:
źródło