ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

开发者指南:为 bypass-paywalls-clean-filters 贡献新站点规则的完整流程

开发者指南:为 bypass-paywalls-clean-filters 贡献新站点规则的完整流程 开发者指南为 bypass-paywalls-clean-filters 贡献新站点规则的完整流程【免费下载链接】bypass-paywalls-clean-filters项目地址: https://gitcode.com/gh_mirrors/by/bypass-paywalls-clean-filtersbypass-paywalls-clean-filters 是一个开源项目通过广告过滤规则与用户脚本帮助读者绕过新闻网站的付费墙Paywall免费阅读被限制的文章。作为开发者你可以贡献新站点规则让更多网站被支持。本文将从零开始带你走完分析站点 → 编写过滤规则 → 提交合并的完整贡献流程无需深厚的前端功底也能上手。为什么要贡献新站点规则每个新闻网站的付费墙实现方式都不同有的是弹出遮罩层有的是限制阅读次数Metered Paywall有的干脆隐藏正文。项目维护者不可能覆盖所有站点因此社区的规则贡献是项目持续壮大的关键。贡献规则的好处✅ 帮助全球读者免费获取资讯✅ 提升自己的前端调试与反爬分析能力✅ 规则被合并后你的名字会出现在项目贡献记录中项目结构一览 ️先了解仓库布局这是贡献的起点路径作用bpc-paywall-filter.txt核心过滤规则文件Adblock 语法约 700 行规则userscript/bpc.en.user.js英文版用户脚本处理过滤规则搞不定的复杂场景userscript/bpc.de.user.js德语版用户脚本userscript/bpc.fr.user.js法语版用户脚本userscript/bpc.nl.user.js荷兰语版用户脚本userscript/bpc.it.user.js意大利语版用户脚本userscript/bpc.fi.se.user.js芬兰语/瑞典语版用户脚本userscript/bpc.es.pt.user.js西班牙语/葡萄牙语版用户脚本README.md安装与使用说明LICENSEMIT 开源协议规则文件负责拦截付费墙脚本、隐藏遮罩层用户脚本负责改写页面状态、恢复被隐藏的内容。多数站点只需改规则文件少数复杂站点需要两者配合。第一步认识过滤规则的基本语法 打开 bpc-paywall-filter.txt你会看到大量规则。常用语法只需掌握这几种1. 拦截网络请求||example.com/paywall.js$script,~third-party含义阻止 example.com 加载 paywall.js 脚本$script限定资源类型~third-party表示仅作用于本站自身请求。2. 隐藏页面元素example.com##div.paywall-overlay含义隐藏 example.com 页面上 class 为paywall-overlay的 div 元素##后是 CSS 选择器。3. 使用 Scriptlet 处理 Cookieexample.com##js(cookie-remover, access_token)含义自动删除名为access_token的 Cookie这是绕过阅读次数限制的常用手段。项目里已封装了cookie-remover、set-local-storage-item、ra移除属性等现成工具函数例如 bpc-paywall-filter.txt 中的多条规则。 技巧付费墙遮罩层的 class 名通常带有paywall、meter、locked、gate等关键词用浏览器开发者工具F12的元素检查器可以快速定位。第二步分析目标站点的付费墙 ️贡献前必须摸清目标站点的实现方式推荐流程用无痕窗口打开目标文章观察付费墙如何出现按 F12 打开开发者工具定位触发付费墙的元素与脚本检查 Cookie、localStorage 中与阅读计数相关的字段在网络面板Network中找出加载的paywall、meter相关 JS常见付费墙类型与应对策略付费墙类型典型特征首选方案遮罩层覆盖正文的半透明 div过滤规则隐藏元素阅读次数限制Cookie 记录阅读次数cookie-removerScriptlet正文隐藏正文 class 带hidden过滤规则移除 class脚本注入加载第三方付费墙 SDK拦截网络请求第三步编写过滤规则 在 bpc-paywall-filter.txt 中按域名分组添加规则格式参考现有条目如bloomberg.com、axios.com区块。假设我们要为example.com添加规则||example.com/paywall.js$script,~third-party example.com##div.paywall-overlay example.com##js(cookie-remover, article_views)注意三点 规则必须按站点域名分组放置方便维护 优先用~third-party限定范围避免误伤其他站点 涉及通用付费墙 SDK如 piano.io、poool时先查是否已有全局规则避免重复第四步复杂场景添加用户脚本逻辑 当过滤规则无法解决时需要在 userscript/bpc.en.user.js 中添加代码。项目已经封装了完善的工具函数matchDomain()判断当前站点域名见 userscript/bpc.en.user.jsclearPaywall()清除付费墙元素或移除 classwaitDOMElement()等待动态加载的元素出现后执行回调hideDOMStyle()注入 CSS 隐藏指定选择器以屏蔽付费标记为例代码模式大致如下if (matchDomain(example.com)) { clearPaywall(document.querySelectorAll(div.paywall), { rm_class: locked }); }同时要在文件头部match区域添加站点域名参考 userscript/bpc.en.user.js 的写法否则脚本不会在目标站点运行。⚠️ 注意多语言脚本bpc.de.user.js、bpc.fr.user.js 等通常从英文版同步修改如果只改英文版请注明待翻译。第五步本地测试与验证 ✅写好的规则必须实测测试步骤克隆仓库git clone https://gitcode.com/gh_mirrors/by/bypass-paywalls-clean-filters安装 uBlock Origin或 AdGuard将修改后的 bpc-paywall-filter.txt 作为自定义过滤器导入安装用户脚本将 userscript/bpc.en.user.js 导入 Tampermonkey 或 Violentmonkey用无痕窗口打开目标站点验证✅ 文章正文完整显示✅ 无付费墙遮罩✅ 无弹窗报错✅ 其他功能登录、评论未受影响回归测试同样重要确认新规则没有误伤同域名下的其他页面也没有影响其他使用同一付费墙 SDK 的站点。第六步提交合并请求 测试通过后即可提交创建独立分支提交信息使用Add support for example.com这类清晰描述推送分支并发起合并请求PR在 PR 描述中说明站点名称、付费墙类型、测试环境浏览器/扩展、是否已验证多篇文章等待维护者 review根据反馈微调规则维护者通常很关注规则是否过于激进误伤其他内容以及是否重复已有全局规则覆盖。保持规则最小化、可读性高合并概率会大很多。贡献注意事项 遵守 MIT 许可参考 LICENSE 了解授权方式 不要提交针对盗版内容站点的规则项目只面向正规新闻媒体 不要绕过登录墙或付费订阅本身项目目标是免费文章的付费墙显示限制 遇到不确定的规则语法先在项目 issue 区讨论再动手结语从使用者到贡献者 为 bypass-paywalls-clean-filters 贡献新站点规则并不难分析站点 → 编写过滤规则 → 补充用户脚本 → 测试 → 提交。每一次贡献都在帮助全球读者更自由地获取信息。如果你在使用中发现某个站点还未被支持不妨打开本文提到的 bpc-paywall-filter.txt 和 userscript/bpc.en.user.js动手写下你的第一条规则——也许下一次版本更新中就有你贡献的站点【免费下载链接】bypass-paywalls-clean-filters项目地址: https://gitcode.com/gh_mirrors/by/bypass-paywalls-clean-filters创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表