%sにパーセント20ではなくプラスでスペースをエスケープさせる


9

Google Chromeのmetacritic.comの検索ショートカットとしてmcを使用したいのですが。ショートカットに次の検索URLを設定しました。

http://metacritic.com/search/all/%s/results

残念ながら、次のようにして貴族iiiを検索すると

mc patrcian iii

Chromeはこのクエリを生成しますが、メタクリティックはこれを誤って解釈して、無関係な結果の無用なセットを生成します。

http://www.metacritic.com/search/all/patrician%20iii/results

Metacriticはこのクエリが好きで、私が探していた正確な結果が得られます。

http://www.metacritic.com/search/all/patrician+iii/results

URLエンコードされたスペースの代わりにプラス記号を使用するようにChromeを強制するにはどうすればよいですか?


(IEでは、いくつかの異なるエスケープ文字に使用されるエスケープ文字を選択できます。ただし、Chrome :-|
開発

回答:


4

少し粗雑ですが、メタクリティック(または必要に応じて他のサイト)のURLを調整するシンプルなChrome拡張機能を作成できます

Metacritic Search URL Replace拡張機能に使用したコードは次のとおりです。

manifest.json:

{
    "content_scripts": [ {
    "include_globs": [ "http://www.metacritic.com/search/*%20*" ],
    "js": [ "script.js" ],
        "matches": [ "http://*/*", "https://*/*" ],
        "run_at": "document_start"
    } ],
    "converted_from_user_script": true,
    "description": "Replaces '%20' in metacritic search request to '+'",
    "name": "Metacritic search replacer",
    "version": "0.1"
}

script.js:

window.location = window.location.href.replace(/%20/g, "+");

拡張機能をアップロードするための信頼できる場所がないので、これらの2つのファイルを使用してChrome拡張機能を作成する手順は次のとおりです。

まず、2つのファイルをフォルダに入れて、chrome:// extensionsを参照します。開発者モードがアクティブであることを確認します(これを有効にするには、ページの右上を見てください)。ここで、「Pack extension ..」を選択できます。これは、スクリプトが存在するフォルダーを要求します。このフォルダを選択すると、拡張機能が作成され、Chromeにドラッグアンドドロップするだけでインストールできます。すべてが計画どおりに進んだ場合、スクリプトはMetacritic検索要求のURLを「%20」から「+」文字に書き換えます。

これで、http://metacritic.com/search/all/%s/resultsChrome自体で検索エンジンのURLとして使用して、この検索へのショートカットを使用できます。

お役に立てれば.. ;)


これは実際によく見えます。GitHubなどにアップロードできます。
slhck '25年

拡張子(.crx)とソースは次のとおりです。リンク
JiriB '27

5

RESTスタイルの検索を使用する必要はありませんが、代わりに次のような通常のHTTP GETパラメータを使用できます。

http://www.metacritic.com/search/all/results?search_term=test+query

したがって、あなたの場合は次のようになります:

http://www.metacritic.com/search/all/results?search_term=%s

残念ながら、これはMetacricic(?)では機能しません。

私が得られる最高のものは次の検索機能ですが、何らかの理由で実際にはリダイレクトされません:

data:text/html;charset=utf-8,<script>var s = "%s"; s = s.replace("%20", "+"); var url = "http://www.metacritic.com/search/all/" + s + "/results"; window.location = url;</script>

背景情報:

Chromeは、位置に応じて、送信されたパラメーターをエンコードします。つまり、URL内か、GETパラメーターとしてエンコードされます。URL内ではスペースをに変換するのが理にかなって%20いますが、パラメータでは+が使用されます。

残念ながら、彼らはこの動作を変更することはできません。そのため、Javascriptの単純な行でこれを修正できると思います。調べてみます。


やってみましたか?貴族には効かないiii。
シェルドン、

多くのシステムは実際にHTTP書き換えを使用してパス名をHTTP GETリクエストにマッピングします。
Majenko、

@sheldonh検索語が正しく挿入されているので面白いですね。調べてみます。
slhck

@slhckええ、あなたが本当にやっていること-うまくいくはずです。あなたの時間と注意をありがとう。
シェルドン、

@sheldonhメソッドを見つけて投稿を編集しましたが、残念ながらChromeはまだリダイレクトしていませんが、解決策に向けてさらに一歩進んでいます。
slhck

3

彼の回答でslhckが指摘したように、Chromeは%sのみをサポートし、プラス記号を使用するか%20スペースをエスケープするかを「インテリジェント」に決定するように要求します(Chromiumバグ78429を参照)。

私が扱っている特定のテストケース(metacritic.com)は、RESTfulな検索インターフェイスと同時に実行するには、あまりにも多くのフープを課しています。

したがって、回避策として、私は単にapp.metacritic.comのレガシーインターフェイスを使用することを選択しました。

http://apps.metacritic.com/search/process?tfs=game_title&sb=0&game_platform=PC&­ts=%s

それが利用できなかった場合は、metacritic.comに連絡してChromiumバグを紹介し、慈悲を求めました。:-)


どうやらこれは動作を停止しました。:-(
A.ドンダ

1

.crxも.jsも適切にインストールできませんでした(多分それは私のせいです)。

私はなんとかgreasemonkeyスクリプトに依存してそれを機能させることができました(私は個人的にTampermonkeyのgoogle chrome拡張機能を使用してgreasemonkeyスクリプトを処理しています)。

Tampermonkeyに移動したら、新しいスクリプトを作成して次のコードを貼り付けます(また、機能します!もう一度、彼の発見をコピー/貼り付けたので、JiriBに大きく感謝します)。

// ==UserScript==
// @name         Google-Chrome-URL-Replacer-Extension (Metacritic)
// @namespace    https://github.com/FjearJiri/Google-Chrome-URL-Replacer-Extension/
// @version      1.0
// @description  Replaces %20 with + in URLs in order to build valid URLS for search engine shortcuts
// @include      http://www.metacritic.com/search/*%20*
// @copyright    2011+, FjearJiri ('ported' to greasemonkey script by zifnab)
// ==/UserScript==
// http://superuser.com/questions/281934/forcing-s-to-escape-spaces-with-plus-instead-of-percent-twenty
window.location = window.location.href.replace(/%20/g, "+");

1

私はこれと同じことで苦労して、このページを見つけました。残念ながら、答えは複雑すぎるか、レガシー検索のアイデアのように機能しませんでした。そして、私はmetacriticsで何をしていたのかを突然思い出しました。 、実際)。だから私がやったことはグーグル検索を作成し、それを私のメタクリティック検索にすることでした:

https://www.google.com/search?gcx=w&ix=c2&sourceid=chrome&ie=UTF-8&q=site%3Ametacritic.com+%s

metacriticの優れた検索結果ページが表示されないという点で、明らかに理想的ではありませんが、有用な結果が得られます。チャンネル固有のバージョンも作成しました。たとえば、テレビ番組を検索する場合は、同じエンジンに「/ tv /」を追加して使用します。


1

編集:この基本的な拡張機能をChromeストアに追加しました。アイコンも追加しましたが、コードを変更していません。さて、Chromeはその機能を実行でき、ダウンロードフォルダーから削除できます!リンクは:Metacritic search fixerです。

元の投稿:JiriBの拡張コードを更新して、Chromeで再び機能するようにしました!実際には、1行追加するだけで済みました。私はこれまでgithubを使用したことがありませんが、彼のプロジェクトをforkし、プルリクエストを送信しました。

manifest.json:

{
"content_scripts": [ {
"include_globs": [ "http://www.metacritic.com/search/*%20*" ],
"js": [ "script.js" ],
    "matches": [ "http://*/*", "https://*/*" ],
    "run_at": "document_start"
} ],
"converted_from_user_script": true,
"description": "Replaces '%20' in metacritic search request to '+'",
"name": "Metacritic search fixer",
"manifest_version": 2,
"version": "0.2.2"
}

script.js:

window.location = window.location.href.replace(/%20/g, "+");

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.