RE:Google検索フィルタリング
http://d.hatena.ne.jp/kennak/20100510/1273468522
// ==UserScript== // @name Google検索フィルタリング // @namespace http://www.google.com/search // @include http://www.google.co.jp/search?* // ==/UserScript== (function(){ var menu = 0; //xpathで指定された箇所に属性としてstyleを追加 function addAttribute(xpath,style){ var node = document.evaluate(xpath,document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null ); if(node.snapshotLength){ //console.log(node.snapshotLength + 'find'); for (var i = 0; i < node.snapshotLength; i++) { //console.log(node.snapshotItem(i)); //node.snapshotItem(i).parentNode.removeChild(node.snapshotItem(i)); node.snapshotItem(i).setAttribute("style", style); } }else{ //console.log('none:' + xpath); } return node.snapshotLength; } //xpathで指定された箇所を削除 function deleteItem(xpath){ var node = document.evaluate(xpath,document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null ); if(node.snapshotLength){ for (var i = 0; i < node.snapshotLength; i++) { node.snapshotItem(i).parentNode.removeChild(node.snapshotItem(i)); } }else{ //console.log('none:' + xpath); } } //xpathで指定された箇所にtxtを追加 function addText(xpath,txt){ var node = document.evaluate(xpath,document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null ); if(node.snapshotLength){ if(menu == 0){ menu = node.snapshotItem(0).textContent } node.snapshotItem(0).textContent = menu + txt; }else{ //console.log('none:' + xpath); } //console.log('find:' + count + ':' +xpath); } //指定された単語でフィルタ function searchBlockWord(word){ //詳細を隠す var count = addAttribute('//h3[@class="r"]/a[contains(@href,"' + word + '")]/../../../div[@class="s" or @class="s hc"]','display: none;'); //タイトルをグレーアウト addAttribute('//h3[@class="r"]/a[contains(@href,"' + word + '")]/../../h3[@class="r" or @class="r hcw"]/a','font-size: 10pt !important;color:gray !important;'); //liクラス縮小 addAttribute('//li[h3/a[contains(@href,"' + word + '")]]',' min-height: 1px; 1px;border-bottom: 1px solid #C9D5F0 !important;padding-bottom: 4px ! important;'); //タイトルを隠す //addAttribute('/html/body/div/div/div/div/div/ol/li/h3/a[contains(@href,"' + word + '")]','display: none;'); return count; } //スタイル変更 function setCSS(){ //liクラスに下線 addAttribute('/html/body/div/div/div/div/div/ol/li','display: inline-block !important;padding-bottom: 8px !important;border-bottom: 1px solid #C9D5F0 !important;'); //ロゴ消去 addAttribute('//*[@id="logo"]','display: none;'); //セーフサーチリンクを右へ addAttribute('//*[@id="ss-status"]','float:right;padding-top:5%;'); //検索ボックスに下線 addAttribute('//*[@id="sfcnt"]','border-bottom: 1px solid #C9D5F0 !important;'); addAttribute('//*[@class="gb1" or @class="gb2" or @class="gb1 translate" or @class="gb3" or @class="gb4"]','font-weight:normal;height:10px;'); GM_addStyle(<><![CDATA[ #leftnav a{ font-weight:normal; } #tbd .tbt{ border-bottom:1px solid #C9D5F0; } input[name="q"]{ font-weight:normal; } .lst{ float:left; font:14px arial,sans-serif; height:26px; width:100%; } a:link, .w, .q:active, .q:visited, .tbotu { color:#2D4CFF; } div.s, .j{ width:auto !important; max-width:100% !important; padding-right:8px !important; text-align:justify !important; min-width:200px !important; } #leftnav { border-right:1px solid #C9D5F0; height:87%; overflow-y:auto; position:fixed !important; width:155px !important; } ]]></>); } var f = function(doc){ setCSS(); //フィルタリングするサイト var BLOCK_WORD=[ '/word/', '/t/', '2ch', '2nn', 'bookmark', 'buzzurl', '/clips/', 'clipp', 'mixi', 'oshiete', 'keyword', 'search', 'twitter', 'tag', 'wassr', 'patent.jpn.org', 'b.hatena.ne.jp', 'r.hatena.ne.jp', 'clip.livedoor.com', 'clip.nifty.com', 'kotonoha.cc', 'faq.tabitama.co.jp', 'faves.com', 'feed.designlinkdatabase.net', 'flog.jp', 'gaia.luna.tv', 'ikubon.com', 'i.pecipeci.net', 'laszlo.jp', 'kizasi.jp', 'mag2qa.com', 'mark.jolt.jp', 'mobape.jp', 'qa.mapion.co.jp', 'qanda.rakuten.ne.jp', 'soudan1.biglobe.ne.jp', 'okyuu.com', 'okwave.jp', 'pookmark.jp', 'questionbox.jp.msn.com', 'qa.moonstar.co.jp', 'renai.sunmarie.com', 's.phpspot.org', 'sqa.scienceportal.jp', 'swik.net', 'tbp.jp', 'tech.newzia.jp', 'townnote.jp', 'wiki.livedoor.com', 'youtube.com', 'ziddy.japan.zdnet.com', 'brothersoft.jp', 'jp.downpanda.com', 'sqlexecute.brothersoft.jp', 'jp.brothersoft.com', 'ww-ape.com', 'www.softantenna.com', 'maglog.jp', 'softcollection.dyndns.org', 'kaiteki-rich.com', 'www.bit-st.jp', 'www.itposts.net', 'www.forums.wiaderko.com', 'wiaderko.net', '210.132.71.11', 'ja.efreedom.com/' ]; //フィルタ実行 var count = 0; for(var i = 0;i < BLOCK_WORD.length;i++){ count += searchBlockWord(BLOCK_WORD[i]); } addText('//*[@id="resultStats"]',' - ' + count + '件削除しました'); } f(document); if (window.AutoPagerize) { boot(); } else { window.addEventListener('GM_AutoPagerizeLoaded',boot,false); } function boot(){ window.AutoPagerize.addFilter(function(docs){ docs.forEach(f); }); } })();