当前位置:首页 > 焦点

苹果cms无广告采集资源站

苹果CMS本身不带资源库。苹果装完程序,广告后台一片空白,采集得自己接采集接口。资源站网上公开的苹果采集站一抓一大把,但多数会往播放器里塞广告——贴片、广告暂停广告、采集甚至跳转博彩页面。资源站用户点开一集剧,苹果先看15秒澳门线上赌场,广告体验直接崩掉。采集

我最早用某知名资源站,资源站采集速度飞快,苹果一天能拉几千条。广告但播放页里被注入了JS,采集移动端点全屏就弹窗。查源码发现是采集接口返回的播放地址里夹了?ad=xxx参数,苹果CMS默认解析时没过滤,直接透传到前端。后来换了个思路:不找“无广告”的站,而是自己动手改。

采集接口的广告藏在哪里

常见的有三种。第一种是播放地址里带推广参数,比如http://v.qq.com/xxx?ptag=ad,这种最好处理,在苹果CMS的采集规则里加个替换就行。第二种是接口返回的XML里混入<script>标签,苹果CMS默认会转义,但有些模板直接htmlspecialchars_decode输出,就中招了。第三种最阴,资源站自己搭了个中间页,采集过来的播放地址指向http://他们的域名/jump?url=真实地址,用户点播先经过他们服务器,想加什么广告都行。

我目前用的方案是:只采集vod_play_url字段,用正则把http开头到$之间的内容抠出来,再过滤掉非主流域名。苹果CMS后台有个“采集参数”设置,可以绑定自定义函数。我写了个my_filter,把youku、qq、mgtv以外的播放源全部丢弃。这样虽然资源量少了一半,但至少播放器干净。

自己搭一个中转过滤层

更彻底的办法是本地跑个PHP脚本,把采集请求先过一遍。比如资源站接口是http://api.example.com/xml.php?ac=list,我在自己服务器上建个proxy.php,用file_get_contents拉取原始数据,然后str_replace掉已知的广告域名和参数,再输出给苹果CMS。这样苹果CMS那边完全无感,采集规则不用改。

有个细节:有些资源站会检测User-Agent,发现是服务器请求就返回空数据。我在proxy.php里加了curl模拟浏览器头,顺便设了Referer。速度会慢一点,但稳定。实测一天采集5000条,过滤后剩3200条左右,播放页零弹窗。

别迷信“无广告”标签

很多标榜“无广告采集资源站”的,其实只是自己不加,但上游接口带了。你采过来照样有。我见过一个站,接口返回的vod_play_url里直接写第01集$http://cdn.xxx.com/1.m3u8?ad=1,你不过滤就带着。所以关键不是找站,是建立自己的过滤机制。

另外,苹果CMS的vod_play_from字段也值得检查。有些资源站会把广告源命名为“无广告线路”,实际播放地址指向另一个带广告的CDN。我一般只保留youku、qq、iqiyi、mgtv这几个主流来源,其他一律不采。资源少点就少点,用户能顺畅看完一集比什么都强。

最后说个坑:苹果CMS V10的采集模块有个url参数,如果资源站接口是http://xxx.com/api.php/provide/vod/?ac=list,你直接填进去,它会把?后面的参数丢掉。得在后台把“采集接口地址”和“参数”分开填。这个细节折腾了我一晚上,后来翻官方文档才看到。

分享到: