uBlockでYahoo!ニュースをフィルタしてみよう

ソフトウェア

Yahoo!のトップページに表示されるニュース記事、ある程度サジェストされているとはいえ見たくない記事も多いですよね。という訳で、タイトルにNGワードを含む記事を表示させないようにしてみます。

この手の機能はChrome拡張機能の Y!News Excluder が有名だと思いますが、いかんせん正常に動作しない事が多々ありますので、今回は uBlock Origin を使います。(申し訳ございませんが、インストール方法はご自身でご確認ください。このページでは設定方法だけ記します)

設定方法

とっても簡単。[マイフィルタ] に以下を追記するだけです。

yahoo.co.jp##a:has-text(NGワード)

複数ある場合は1行ずつ追加してください。これでトップページだけでなく、Yahoo!内のあらゆる箇所のNGワードを含むリンクが表示されなくなるでしょう。

※ただし上記設定はYahooすべてのリンクテキストが対象ですので、例えばYahooショッピングの商品名にNGワードを含む場合はその商品も見えなくなってしまいます。トップページだけを対象としたい場合は以下のようにすると良いでしょう。

www.yahoo.co.jp##a:has-text(NGワード)

少し技術的な話

Yahoo!トップページのニュースは上図のとおりarticleタグで囲われ、そのclassはランダムな文字列です(赤線部分)。通常、広告ブロッカーのオブジェクト要素に対するフィルタはclassを指定しますので、これではすぐに効果がなくなる事が予想できます。

yahoo.co.jp##article._3S2Q2j3wAQxbug02Q7t3dO:has-text(NGワード)
 → 「_3S2Q2j~」の部分が変わると効果がなくなる

ですのでhas-textはclassではなくタグにかけざるを得ないのですが、articleにかけるとNGワードを含まない記事もすべて消えてしまいますので、articleの子要素であるaタグにかける事となります。結果的にフィルタが簡単になるのはありがたいですね、この先コードがどう変わるかわかりませんので。

yahoo.co.jp##:xpath(//article[contains(./a ,"NGワード")])
 → 管理が面倒ではございませんか

皆さまのネット生活が少しでも良くなれば幸いです。