uBlockでYahoo!ニュースをフィルタしてみよう
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位は)
皆さまのネット生活が少しでも良くなれば幸いです。