8

Я хотел бы использовать mc в качестве ярлыка поиска для metacritic.com из Google Chrome. Для ярлыка я настроил следующий поисковый 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

Как заставить Chrome использовать символы плюс вместо пробелов, закодированных в URL?

7 ответов7

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 может это исправить. Я посмотрю на это.

4

Хотя это немного грубовато, вы можете создать простые расширения Chrome, которые настраивают URL для метакритики (или других сайтов, если хотите)

Вот код, который я использовал для расширения «Замена метакритического поиска»:

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, "+");

Поскольку у меня нет надежного места для загрузки моего расширения, вот инструкции по созданию расширения Chrome с использованием этих двух файлов:

Во-первых, поместите два файла в папку и перейдите к chrome://extensions. Убедитесь, что режим разработчика активен (посмотрите в правом верхнем углу страницы, чтобы включить это). Здесь вы можете выбрать «Pack extension ..», который попросит вас указать папку, в которой находится ваш скрипт. После выбора этой папки будет создано расширение, и вы можете просто перетащить его в Chrome для установки. Если все прошло по плану, сценарий перезапишет URL-адрес запроса поиска Metacritic с символов «% 20» на символы «+».

Теперь вы можете использовать http://metacritic.com/search/all/%s/results в качестве URL-адреса поисковой системы в самом Chrome, чтобы использовать ярлык для этого поиска.

Надеюсь это поможет.. ;)

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 и попросил пощады. :-)

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

Изменить: я добавил это базовое расширение в Chrome Store, я также добавил значки, но в остальном не изменил код. Да, теперь Chrome может просто делать свое дело, и я могу удалить его из папки загрузки! Ссылка: Metacritic Search Fixer.

Исходное сообщение: Я обновил код расширения JiriB, чтобы он снова работал в Chrome! Это действительно просто нужно одну дополнительную строку. Я никогда не использовал GitHub раньше, но я раздвоил его проект и отправил запрос на удаление.

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, "+");
1

У меня были трудности с этим же, и нашел эту страницу. К сожалению, ответы были либо слишком сложными, либо, как и унаследованная идея поиска, не работали, и затем я внезапно вспомнил, что я делал с метакритикой, которая заключалась в поиске в Google, потому что поисковая система метакритики была очень плохой (до сих пор , на самом деле). Итак, я сделал поиск в Google и сделал мой метакритический поиск:

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

Очевидно, что он не идеален, потому что вы не получаете хорошую страницу результатов поиска метакритика, но она дает полезные результаты. Я также создал определенные версии канала; например, если я хочу искать телешоу, я использую тот же движок с добавленным "/tv/".

0

Используйте следующую строку поиска для системы пользовательского поиска:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .