それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ブロッカー独自CSSルール文字列マッチCSSで、特定文字列を持つ要素を消す

CSSには「文字列」にマッチさせる方法がない。

CSS では、textContent にいい感じにマッチさせる方法がない。

xpath ならできる

xpath ならできるんですよね。「おすすめ」というリンク文字列を持つdiv を選ぶ

//div[class='xxx'][ .//a[ contains(. , 'おすすめ') ] ]

広告ブロッカーの独自CSSなら書ける。

CSSではかけなくても、広告ブロッカーが独自拡張しているCSSなら記述できる。

div.xxx:has( a:contains("おすすめ") )

たとえば、以下のように、Adguard では記述できる。 https://github.com/AdguardTeam/ExtendedCss#extended-css-contains

この他にも各種広告ブロッカが切磋琢磨しているので、x:contains文法は、広告ブロッカでは記述できることが多い。ublock 系でも同様の記述ができる。

文字列でマッチさせられて、指定テキストを子要素に持つ( :has )が使えるので、広告ブロッカに自分でルールを考えるのがとても楽になっている。

なんて便利なんだ知らなかったので、いつもXpathで工夫してたよ・・・・

追記

拡張CSSは、動作が不安定(もしかしてページロード時だけ?)なので、CSSで書けるならCSSで頑張ったほうが良い気がする。