近期梯子不是很穩定,在家辦公時網絡也很差,bing 的搜索效果也差強人意,勉強用用百度吧,但是廣告又特別惡心人。
工具介紹
本人使用的是 chrome 插件的 FeHelper 提供的網頁油猴子工具
var hiddenSelector = [
// 百度搜索
'#content_right',
'#content_left [style="display:block !important;visibility:visible !important"]',
// 百度貼吧
'#j_p_postlist [ad-dom-img]',
];
for (let i = 0; i < hiddenSelector.length; i++) {
$(hiddenSelector[i]).css({
'display': 'none',
'width': '0',
'height': '0 '
})
}
保存並啟用!
百度真的是雞賊,給廣告元素的標識藏的還真的深,努力的想讓自己的廣告標簽弄的和正常的內容差不多。
這選擇器還讓我寫的挺惡心 '#content_left [style="display:block !important;visibility:visible !important"]'
,再見了您吶。
完善過程
保存生效此代碼,但發現還是又些不足,百度在請求結束后又插入了一堆非常難以直接用 css 直接選擇出來的小型廣告,如下圖:
那么給代碼設置一個定時器吧。
var hiddenSelector = [
// 百度搜索
'#content_right',
'#content_left [style="display:block !important;visibility:visible !important"]',
// 百度貼吧
'#j_p_postlist [ad-dom-img]',
];
var hiddenSubSelector = [
// 百度搜索
{
'name': '#content_left .ec_tuiguang_pplink',
'depth': 2
}
];
for (let i = 0; i < hiddenSelector.length; i++) {
$(hiddenSelector[i]).css({
'display': 'none',
'width': '0',
'height': '0 '
})
}
// 定時清除8次,每1秒一次。
var times = 8;
var timer = setInterval(function () {
if (times === 0) {
timer = null;
}
for (let i = 0; i < hiddenSubSelector.length; i++) {
let $dom = $(hiddenSubSelector[i].name)
for (let j = 0; j < hiddenSubSelector[i].depth; j++) {
$dom = $dom.parent();
}
$dom.css({
'display': 'none',
'width': '0',
'height': '0 '
})
}
times = times - 1;
}, 1000)
十分難選的東西,就只好先選它的廣告標簽,然后再返回來選它的父級了。
最終效果就是去掉了搜索頁的所有廣告。
心得
我嘗試過直接寫 chrome 插件注入 css 和 js 去清除廣告,效果雖然不錯但是挺麻煩的。
也試過其他人的油猴子腳本,但效果也是差強人意。。總之自己寫個簡單的東西滿足自己的需要是個不錯的選擇。