自分の好きな商品を色々なサイトで検索できるように横断検索にできるSearch at Onceメーカーというサイト(http://shumbo.github.io/Search-at-Once/)でサイトを登録してカスタマイズしたいのですが、その際に【項目を追加】に登録したいサイトのURLを挿入します。
しかし、この時に例えば価格コムを追加して好きな商品を検索する時、表示されるのは複雑な漢字に文字化けしてしまいます。
どういう感じでURLを入力すればいいでしょうか?
専門知識が一切ないのでそのあたりもよろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
見てみましたが無理だと思います。
キーワードを Unicode で横断検索するブックマークレットを作成するサイトのようですが、価格.com で使うのは Unicode でなくパーセントエンコーディングされたシフトJISのようです。
ですので、同じようなブックマークレットを作る他のサイトで価格.comに対応したものを見つけるか、自分で作ってください。
投稿2017/09/16 14:59
総合スコア28660
0
ベストアンサー
C#
1using System; 2using System.Linq; 3using System.IO; 4using System.Text; 5using System.Web; 6using System.Diagnostics; 7using System.Windows.Forms; 8using System.Threading; 9 10namespace Multi_Search 11{ 12 class Program 13 { 14 static string clipboard = ""; 15 16 static void GetClipboardText() 17 { 18 clipboard = Clipboard.GetText(); 19 } 20 21 static void Main(string[] args) 22 { 23 // search.txtがない場合は終了 24 if (!File.Exists("search.txt"))return; 25 26 // search.txtの読み込み 27 var sr = new StreamReader("search.txt"); 28 var text = sr.ReadToEnd(); 29 sr.Close(); 30 31 // search.txtを1行ずつ分解 32 var urls = text.Split('\n').Select(e => e.Trim('\n').Split(',')); 33 34 // STAでGetClipboardText()を動かさないとクリップボードがとれない 35 var t = new Thread(GetClipboardText); 36 t.SetApartmentState(ApartmentState.STA); 37 t.Start(); 38 t.Join(); 39 40 // クリップボードが空なら終了 41 if (clipboard == "") return; 42 43 // 各行 + clipboardの内容を結合、エスケープして実行 44 foreach(string[] url in urls) 45 { 46 var enc_name = "utf-8"; 47 if (url.Length > 1 && Encoding.GetEncodings() 48 .FirstOrDefault(e => e.Name == url[1]) != null) 49 enc_name = url[1]; 50 var enc = Encoding.GetEncoding(enc_name); 51 Process.Start(url[0] + HttpUtility.UrlEncode(clipboard, enc)); 52 } 53 } 54 } 55}
search.txt
https://www.google.co.jp/search?q= https://teratail.com/questions/search?q= http://kakaku.com/search_results/,shift_jis
作ってみました。
私はブックマークレットを作れないので
コンソールアプリケーションで。
Chromeが既定のブラウザの状態なら複数のタブが開きます。
このsearch.txtの内容だと
Google, teratail, 価格コムの検索結果が
表示されます。
search.txtは
「検索時のurl,文字コード」
と記述します。
正確に動くかどうかは分かりません。
投稿2017/09/17 04:47
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
C#
1using System; 2using System.Text; 3using System.Web; 4using System.Diagnostics; 5 6namespace Test 7{ 8 class Program 9 { 10 static void Main() 11 { 12 var str = "パソコン"; 13 var jis = Encoding.GetEncoding("shift_jis"); 14 var url = HttpUtility.UrlEncode(str, jis); 15 Process.Start("http://kakaku.com/search_results/" + url); 16 } 17 } 18}
Ruby
1require 'uri' 2 3str = 'パソコン' 4url = URI.escape(str.encode('Shift_JIS')) 5system ('start http://kakaku.com/search_results/' + url) 6
ブラウザで価格コムの「パソコンの検索結果」を表示します。
Zuishin様のおっしゃっている方法で可能だと思います。
投稿2017/09/17 00:37
編集2017/09/17 00:43退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。