Forçando% s a escapar de espaços com mais em vez de cento vinte

8

Eu gostaria de usar o mc como um atalho de pesquisa para o metacritic.com do Google Chrome. Eu configurei o seguinte URL de pesquisa para o atalho:

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

Infelizmente, quando procuro pelo patrício iii da seguinte forma

mc patrcian iii

O Chrome produz esta consulta, cuja metácrita interpreta erroneamente para produzir um conjunto inútil de resultados não relacionados:

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

Metacritic gosta dessa consulta, me dando exatamente o resultado que eu estava procurando:

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

Como posso forçar o Chrome a usar mais símbolos em vez de espaços codificados em URL?

    
por sheldonh 11.05.2011 / 09:35

7 respostas

4

Apesar de ser um pouco grosseiro, você pode criar extensões simples do Google Chrome que ajustam o URL para metacrítico (ou outros sites, se quiser)

Este é o código que usei para uma extensão Substituir URL de pesquisa metacrítica:

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

Como não tenho um local confiável para fazer o upload da minha extensão, aqui estão as instruções para criar uma extensão do Chrome usando esses dois arquivos:

Primeiro, coloque os dois arquivos em uma pasta somehwere e navegue até chrome: // extensions. Certifique-se de que o modo de desenvolvedor esteja ativo (olhe no canto superior direito da página para ativar isso). Aqui você pode selecionar 'Pack extension ..', que lhe pede a pasta onde seu script reside. Depois de selecionar essa pasta, a extensão será criada e você poderá arrastar & largue-o no Chrome para instalar. Se tudo correr conforme o planejado, o script reescreverá a URL de uma solicitação de pesquisa Metacritic de '% 20' para os caracteres '+'.

Agora, você pode usar http://metacritic.com/search/all/%s/results como um URL do mecanismo de pesquisa no próprio Google Chrome para usar um atalho para esta pesquisa.

Espero que isso ajude ..;)

    
por 25.06.2011 / 20:42
5

Você não precisa usar o estilo de pesquisa REST, mas pode usar os parâmetros normais HTTP GET assim:

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

Então, no seu caso, isso seria:

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

Infelizmente, isso não funciona com o Metacricic (?).

O melhor que consegui é a seguinte função de pesquisa, mas ela não redireciona por algum motivo:

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>

Informação de fundo:

O Google Chrome codifica os parâmetros enviados, dependendo da posição, ou seja, se estiver dentro de um URL ou como um parâmetro GET. Em um URL, faz sentido converter um espaço em %20 , enquanto em um parâmetro, o + é usado.

Infelizmente, eles não estão dispostos a mudar esse comportamento , então meu palpite seria que uma simples linha de Javascript poderia corrigir isso. Eu vou investigar isso.

    
por 11.05.2011 / 09:49
3

Como apontado por slhck em sua resposta, o Chrome suporta apenas% s e insiste em "inteligentemente" determinar se usar mais símbolos ou %20 para escapar de espaços (consulte Chromium bug 78429 ).

O caso de teste específico com o qual estou lidando (metacritic.com) impõe muitos obstáculos para avançar simultaneamente com a interface de pesquisa RESTful.

Portanto, como solução alternativa, optei por simplesmente usar a interface legada do app.metacritic.com:

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

Se isso não estivesse disponível, eu teria entrado em contato com o metacritic.com, encaminhado para o erro do Chromium e implorado por misericórdia. : -)

    
por 12.05.2011 / 08:59
1

Eu não consegui nem o .crx nem o .js para instalar corretamente (talvez seja minha culpa).

Consegui fazê-lo funcionar com base em um script greasemonkey (eu uso pessoalmente a extensão Tampermonkey do google chrome para lidar com scripts do greasemonkey).

Uma vez no Tampermonkey eu crio um novo script e cole o seguinte (e funciona! mais uma vez, um GRANDE OBRIGADO para o JiriB, já que acabei de copiar / colar suas descobertas):

// ==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, "+");
    
por 02.12.2011 / 21:50
1

Eu estava tendo dificuldades com a mesma coisa e encontrei esta página. Infelizmente as respostas eram muito complexas ou, como a idéia de pesquisa legada, não funcionavam, e então de repente me lembrei do que costumava fazer com metacrítica, que era pesquisar no google porque o mecanismo de busca metacrítico era tão ruim (ainda é , na realidade). Então, o que eu fiz foi criar uma pesquisa no google e fazer minha pesquisa metacrítica:

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

Obviamente, não é o ideal, pois você não obtém uma boa página de resultados de pesquisa do metacritic, mas dá resultados úteis. Eu também criei versões específicas do canal; por exemplo, se eu quiser procurar programas de TV, eu uso o mesmo mecanismo com "/ tv /" adicionado a ele.

    
por 12.12.2011 / 22:55
1

Editar: adicionei essa extensão básica à Chrome Store, também adicionei ícones, mas não alterei o código. Agora, o Chrome pode fazer o seu trabalho e eu posso deletá-lo da minha pasta de download! O link é: Corrigidor de pesquisa metacrítica .

Postagem original : atualizei o código de extensão do JiriB para que ele funcione novamente no Chrome! Realmente só precisava de uma linha extra. Eu nunca usei o github antes, mas eu bifurquei o projeto dele e enviei um pedido de pull.

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, "+");
    
por 01.08.2013 / 08:45
0

Use a seguinte string de pesquisa para o mecanismo de pesquisa personalizado:

link

    
por 14.01.2016 / 17:24