iconic.naturee.jpg

via naturee

苹果手机上也能「屏蔽内容农场」了 - iOS上 使用 Quantumult X/Surge 配合 JavaScript/CSS 屏蔽「内容农场/CSDN/KKnews」及谷歌搜索结果中的广告,让谷歌搜索更清爽实用。(Safari用户也可以配合油猴脚本使用:https://greasyfork.org/zh-CN/scripts/443290-adblock4limbo

I. 内容农场

利用QuantumultX/Surge/油猴脚本 屏蔽「内容农场」搜索结果 - CSDN - 复制粘贴乐园.PNG

利用QuantumultX/Surge/油猴脚本 屏蔽「内容农场」搜索结果 - kknews - 每日头条.png

原标题:iOS苹果手机屏蔽内容农场的方法:使用 Quantumult X/Surge/油猴脚本 & JavaScript/CSS 屏蔽内容农场在谷歌/必应搜索结果中的呈现(iPhone/Safari/Chrome),顺便在清除谷歌搜索结果中的Adsense广告,还你清爽的 Google 中文搜索体验!

内容农场(英文:content farm)是指为了牟取广告费等商业利益或出于控制舆论、带风向等特殊目的,快速生产大量网络文章来吸引流量的网站。此类网站通常找不到作者、管理者、网站负责人,也不会主动管理产出的内容,对侵权或错误内容投诉的处理也很消极。其产出内容多半都是缺乏原创性且真实性无法保证的内容,且有极高比例是盗用、盗译自他人的原创图文,或由非专业写手胡乱拼凑网络文章而来,因而多半缺乏可靠来源、质量低劣、不具参考价值、传播误导讯息,也经常掺杂大量广告或恶意程序。 via 维基百科

II. 一个好消息

一个好消息:配置文件:contentFarm.conf/contentFarm.sgmodule 中所指向的 contentFarm.js 文件,会与 Google-Chinese-Results-Blocklist.txt/content-farm-terminator 保持同步更新,即如果 Google-Chinese-Results-Blocklist/content-farm-terminator 涵盖了所有内容农场网站域名的话,那么你永远也不会在 Google 搜索结果中看到这些 内容农场的垃圾内容;(P.S. 目前已涵盖约4k+内容农场网站域名,点此查看);

III. 软件说明及公开仓库

系统:iOS/iPadOS/macOS:
浏览器:Chrome/Safari/Firefox/edge;
代理软件:QuantumultX/Surge;
涉及搜索引擎:谷歌搜索/必应搜索;
浏览器扩展Tampermonkey For Chrome/Safari 或 Adguard for Mac(付费授权版);
Githubhttps://github.com/limbopro/Adblock4limbo
contentFarm.jshttps://raw.githubusercontent.com/limbopro/Adblock4limbo/main/Adguard/contentFarm/contentFarm.js

IV. QuantumultX 重写配置(屏蔽内容农场)

在 Quantumult X 重写中引用配置文件https://limbopro.com/contentFarm.conf (食用方法:打开 Quantumult X - 重写 - 引用 - 粘贴该链接;);
交流群组https://t.me/Adblock4limbo
内容农场域名黑名单来源Google-Chinese-Results-Blocklist;内容农场终结者:content-farm-terminator

V. Surge 模块配置(屏蔽内容农场)

食用方法

本模块内容已经添加至 毒奶去广告计划 模块内,如果你已安装 Adblock4limbo.sgmodule,请不要再安装本模块;

第一步:安装模块:Surge - 首页 - 模块 - 安装新模块 - 粘贴下面的链接 - 好的;(如何 更新模块?:左滑 模块的名称 - 点击 更新;);

https://limbopro.com/contentFarm.sgmodule

第二步: 更新 外部资源Surge - 首页 - 点击左上角 - 进入你的 配置列表 - 编辑 - 外部资源 - 点击 全部更新(这一步很重要,很多时候大家在第一次安装并更新模块完成附带更新外部资源,就再也不手动去更新 外部资源 了,而是等待它自动更新;);

第三步:配置分流Surge - 首页 - 出站模式 - 规则分流 - 代理规则 - 新增 - 增加新规则集 - 外部规则集 - 策略(选) - Reject - 粘贴 如下 URL

模块引用后记得更新外部资源,并开启 Rewrite、MitM,脚本的 开关,配置并信任证书;

额外的配置MitM - 配置根证书 - 选项 - 开启 “跳过服务端证书验证” 以及 “用于TCP连接”,正常情况下无需开启;

如何更新模块与外部资源(脚本/分流/重写等)?:模块安装好后,可点击 - 模块 - 找到 安装的模块 ,左滑 想要更新的模块 - 点击 更新 ;返回 Surge - 首页 - 点击左上角的 配置文件名称 - 找到 编辑 - 外部资源 - 全部更新

VI. 油猴脚本版本(屏蔽内容农场)

如果你更喜欢使用 Safari,可以选择安装 userscript 的 Safari 浏览器扩展,那样手机浏览器上也能使用油猴脚本了;

我们已经发布在了社区,如大家已安装油猴,可点击右方链接安装:https://greasyfork.org/zh-CN/scripts/443290-adblock4limbo-adsremoveproject 或 进入个人中心查看可选安装 https://greasyfork.org/zh-CN/users/893587-limbopro

VII. 学习资料

正则表达式的运用

以谷歌搜索(HK)举例,去广告实例分为三个部分
主机名*\.google\.*;(遵循正则表达式书写)
重写类型:response-body;
重写规则

hostname = *\.google\.*
# content Farm Adblock 屏蔽内容农场
https://\www\.google(\.\w{2,4}){1,2}\/search\?.* url response-body </body> response-body <link rel="stylesheet" href="https://limbopro.com/CSS/contentFarm.css"><script  src="https://limbopro.com/Adguard/contentFarm/contentFarm.js"></script></body>

这条重写规则的意思是,匹配域名含 google 在内,但排除网址内容中含CSS/JS/JPEG等资源的其他所有链接,因为我们的主机名填的是 .google.,所以自然也不会匹配到网址的如 https://limbopro.com/archives/google.html ,会miss,不会hit;在正确匹配网址后,将通过 QX response-body 重写类型继续深入匹配 网页内容(即所谓的响应体),在这个实例中,我们将匹配响应体中的 </body>标签,匹配后进行替换,替换成 <script src="https://limbopro.com/Adguard/contentFarm.js"></script></body>,到这里,我们可以看得出来,这一套下来基本上跟油猴脚本,Adguard、uBlock Origin 一个去广告路子了,都是动态在网页中插入 JS 文件以实现对网页中的元素进行精准控制,或移除或改变其样式或在其后添加新的元素等等。

JavaScript 动态移除网页广告元素的方法

注意,此时重写会有所变动,涉及到 JavaScript 在网页中加载执行的机制,需要把 JavaScript 文件放到DOM最后,即</body>前:

配置文件内容如下

hostname = *\.google\.*
# content Farm Adblock 屏蔽内容农场
https://\www\.google(\.\w{2,4}){1,2}\/search\?.* url response-body </body> response-body <link rel="stylesheet" href="https://limbopro.com/CSS/contentFarm.css"><script  src="https://limbopro.com/Adguard/contentFarm/contentFarm.js"></script></body>

contentFarm.js 文件内容实例如下:大多数时候我们只需要维护 js文件中的 webList 和 google_cssSelectors 这两个变量的内容;

var ads_host = [
    "csdn.net",
    "kknews.cc",
    "021shfx.com",
    "024ksm.com",
    "025pc.cn"
];

var search_results_css = [
    "[data-sokoban-grid]",
    "[class][data-hveid]",
    "[data-hveid]>[class]"
]

for (i = 0; i < ads_host.length; i++) {
    var ads_host_css = "[href*='" + ads_host[i] + "']";
    var huge = document.querySelectorAll(search_results_css);
    for (x = 0; x < huge.length; x++) {
        if (huge[x].querySelectorAll(ads_host_css).length > 0) {
            huge[x].style.display = "none";
        }
    }
}

JavaScript/CSS 动静态移除谷歌搜索结果中的广告

Ads_Block_Google_Results_文字链接广告.png
Ads_Block_Google_Results_商品图片广告.png

在中文互联网日渐App化的今天,博主还是更喜欢在浏览器中搜索内容,查阅资料;

屏蔽谷歌搜索结果中的广告的 JavaScript 代码如下:(博主把这段代码放到了 contentFarm.js 里面了,正常情况下大家也看不到谷歌搜索结果中的广告了),点此在谷歌搜索 expressvpn 看看,如若已正确配置 contentFarm.conf 重写,应该是看不到广告了;

contentFarm.js 部分示例(注:仅用于移除谷歌搜索结果中的广告的部分JavaScript代码;)

/*
Written by limbopro
Google TxT Ads block
*/

var google_TXTads_cssSelectors = ["[data-text-ad],#tvcap,.adDDi,#tads[aria-label]"];
var adsKill = document.querySelectorAll(google_TXTads_cssSelectors);

var i;
for (i = 0; i < adsKill.length; i++) {
    adsKill[i].style.display = "none";
}

contentFarm.css 示例(注:目前该css文件仅用于静态移除谷歌搜索结果中的广告,而移除内容农场的搜索结果则需要JavaScript);

[data-text-ad] {display: none! important;}
#tads[aria-label] {display: none! important;}
.adDDi {display: none! important;}
#tvcap {display: none! important;}

上述两个示例是等效的,都是通过CSS属性选择器的相应方法对元素进行隐藏/不展示;

你可能需要学习的

1.正则表达式
2.JavaScriptJavaScript高级程序设计(第4版).PDF
3.CSS选择器
4.正则表达式在线测试

VIII. 附注

Yes,That's All.

最后修改:2022 年 06 月 08 日 10 : 55 PM