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

2022年10月16日ソフトウェア

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

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

設定方法

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

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

複数ある場合は1行ずつ追加してください。これでトップページだけでなく、Yahoo!内のあらゆる箇所のNGワードを含むリンクが表示されなくなるでしょう。その記事を提供したメディア名(〇〇新聞、週刊〇〇など)を指定してもOKです。

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

www.yahoo.co.jp,news.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ワード")])
 → 管理が面倒ではございませんか

他のサイトで応用してみよう

上記はもちろん応用が可能です。例えばITmediaでよくある偽アンケート記事は、こちらで非表示にできます。

itmedia.co.jp##li:has-text(1位は)

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