Yahoo!知恵袋の検索結果から広告を削除する拡張機能の自作
目次
何をするのか(目的)
Yahoo!知恵袋で検索していると、時折、検索結果のリストに広告が表示されることがある(下図の赤枠)。傍に表示されるのならまだしも、リストに表示されると間違ってクリックしてしまう。欲しい情報とは全然関係のないページが表示されてうんざりする。

この邪魔な広告を消すため、chrome 拡張機能を自作した。この記事の最後に、導入後に表示した画面ショットを載せいている。
実装
最初に、適当にフォルダを作成する。今回はフォルダ名を「chrome_addon」とした。そのフォルダに以下の 2つのファイル(manifest.json、content_script.js)を作成する。あとはこれをブラウザの拡張機能として導入するだけだ。
◆ manifest.json
{
"manifest_version": 2,
"name": "Yahoo知恵袋の広告削除",
"version": "1.0.0",
"description": "Yahoo知恵袋の検索結果リストから広告を削除するChrome拡張です",
"content_scripts": [
{
"matches": ["https://chiebukuro.yahoo.co.jp/*"],
"js": ["content_script.js"]
}
]
}
◆content_script.js
document.getElementsByXPath = function(expression, parentElement) {
var r = []
var x = document.evaluate(expression, parentElement || document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
for (var i = 0, l = x.snapshotLength; i < l; i++) {
r.push(x.snapshotItem(i))
}
return r
}
var myNode = document.getElementsByXPath("//div[contains(@class,'SSContainer')]");
myNode.forEach(function(tag) {
tag.remove();
});
拡張機能の導入(Chrome)
macの場合、chromeのメニュー→ウィンドウ→拡張機能と辿る。windowsでも似たような感じでできるだろう。
次に表示される画面で、右端のデベロッパーモードをONにすると「パッケージ化されていない拡張機能を読み込む」ボタンが出現するので、それをクリックする。
フォルダ選択の子画面が表示される。作成したファイルが格納されているフォルダ(今回はchrome_addon)を選択すると、下図のように自作したものが追加される。右下のスライドバーがON(有効)になっていることをチェック。
以上で導入は完了。
拡張機能の導入(Firefox)
Firefox の URL バーに “about:debugging” と入力。
Enterして開いたページで「このFirefox」→「一時的なアドオンを読み込む…」をクリック。
ファイル選択の子画面が表示される。作成したファイルのいずれか一つを選択すると、下図のように自作したものが追加される。Firefox を再起動するまで、アドオンがインストールされた状態になる。
導入後の表示確認
下図のように、期待どおり広告が消えてくれた。このページを表示する際に一瞬広告の行が写るが、javascriptが効いてすぐに消える。これで、純粋に検索結果だけが表示されるので、無駄なチェックが不要となった!