标签归档:chrome扩展

图片助手(ImageAssistant):一款功能强大的网页图片提取利器

图片助手(ImntageAssistant)

图片助手(ImntageAssistant)

博主是一个平时喜欢在网上下载漂(Mei)亮(Zi)壁纸的人,偶尔会砰见有些网站设置一些障碍阻拦网友下载图片,比如屏蔽右键啦、要求登录啦(登录后又要积分)之类的,还有一种是一个页面放一个图,每看一个图要按一下按钮,一不小心就点到开新窗口的广告了。有些博客网页(如网易、Lofter)有很多美图,也没有啥保存限制,但一个一个下也是很麻烦的事情(人总是很挑剔哈),总之钻木取火是很不方便的,各种曾经的纠结就让博主萌发了做一款专门用来分析网页图片并提供筛选下载功能的扩展的想法。经过超过半年时间的酝酿开发,一款能够初步让博主满意的扩展——图片助手(ImageAssistant)终于完成了。

她是一款怎样的扩展?

她是一款包含网页图片提取、筛选、下载功能的chrome扩展(当然也能运行于各式360浏览器、猎豹浏览器、百度浏览器、UC浏览器、115浏览器等众多定制的浏览器),不论你是网页设计师、程序员还是普通网友,她高效的图片筛选、下载功能都能为你所用。

图片提取

图片来源有两个,页面元素分析及HTTP请求监听。

其中页面元素分析图片提取包含三种模式,一种基本图片提取模式和两种加强提取模式。

在基本提取模式中,提取范围囊括网页中的图片元素SRC地址及包含图片地址的属性值、链接中包含的图片地址、各DOM元素的样式图片、IFRAME框架内容中的图片元素;通过AJAX动态加载的以上各元素属性也在提取范围(页面采用动态延迟载入么?没问题!只要是图片,也是她的菜)。

在某些情况下,网页更原意展示图片的缩略图,而大尺寸的图片则以动态链接的形式呈现给用户,此时可以通过加强模式之预取链接数据来偿试获得图片数据。

在更为罕见的情况下,大尺寸的图片会被嵌在当前链接的新页面中,此时可以通过加强式之分析预取数据来偿试获得更完整的图片数据。

你或许想到了,网页加载图片不一定会放到DOM里,也可能是直接由FLASH加载的,或者被加载后用于绘制到CANVAS上,通过这两种方式加载的图片不就没有办法获取么?其实这两种情形也已经被考虑了,图片提取的另一个数据来源是请求监听,这两种方式加载的图片也能被获取了。

可以说在页面中能够看到的图片元素几乎都能够被提取,哪怕是“丰富多彩”的嵌入式广告所包含的图片也不例外(请先把你的Adblock plus关了)。

图片筛选

扩展提取的图片由单独的筛选页呈现给用户筛选,所有图片都已经按照图片尺寸(面积)由大到小排列了。可供筛选的选项包括图片的类型(BMP、PNG、JPG、GIF、SVG、WEBP、ICO)及可自定义筛选选项的图片大小。

筛选针对大规模图片展示做过优化,内存不是太小的话(不小于8G,图片吃内存啊),一次性容纳五千张供筛选的图片也不会有什么问题(内存不够会被CHROME干掉)。

使用快捷键可以关闭顶部菜单,一来增加预览空间,二来加快操作速度。

哪些场景适合使用她?

设计师迅速获取网页素材,游戏开发人员从网页游戏中提取材质,批量下载壁纸,批量看站点图片……

以下展示几个比较有代表性的使用场景:

批量下载百度壁纸:

批量下载百度壁纸,批量下载桌面壁纸

批量下载百度壁纸,批量下载桌面壁纸

只要你的机器性能够好,内存够大,主要是网络够快的话,一小会儿的功夫下载上千张1080P的壁纸都不是问题。

批量下载百度壁纸,批量下载手机壁纸

批量下载百度壁纸,批量下载手机壁纸

不光是桌面壁纸,只要在百度页面里设定好手机分辨率再用扩展提取,下载大量适合你手机屏幕大小的壁纸也是很简单的事情。

用了她,再也不需要一张一张点开另存为了,下载壁纸是不是变得简单高效呢?

批量下载图片搜索结果:

批量下载图片搜索结果

批量下载图片搜索结果

本篇讨论的是扩展,所以不要问我是怎么打开google的。之前打算在百度上演示这个的,但搜apple后百度更倾向于让我看苹果公司。还是google上靠谱些,搜apple更倾向于给用户展示水果。当然你也可以用这种方式来找适合桌面大小的壁纸啦。

提取微信页面所用素材(原来有这么多看不见的元素啊):

获取微信页面所用素材

获取微信页面所用素材

微信的PC网页登录页是不是很简单呢?用工具扒扒看,哇,原来还隐藏了好多素材。

提取cnBeta中的网页元素,包括嵌入式页面广告:

提取cnBeta中的网页元素,包括嵌入式页面广告

提取cnBeta中的网页元素,包括嵌入式页面广告

哦,这个例子拿cnBeta来试的,关掉Adblock Plus后页面内容“丰富”多了,用工具扒一扒,嵌入式页面广告图片都出来了,功能是不是很强大?cnBeta的广告着实是多啊,加载众多广告所耗费的流量比加页面自身耗费的流量多多了。

批量提取网友收集素材资源:

批量提取网友收集素材资源

批量提取网友收集素材资源

好心的网友在网易博客上发了一些自己收集的PS素材,是不是很喜欢呢?一个页面一个页面点开再一个一个另存为到本地么?白头发都出来了,用工具吧,使用重型武器氢弹后你只需要点击面面列表底部的页码,所有列表里中页面的图片就都被扒下来了。

批量浏览魅族论坛摄影板块中帖子里的图片:

批量浏览魅族论坛摄影板块中帖子里的图片

批量浏览魅族论坛摄影板块中帖子里的图片

这个没什么好说的,有时浮躁了一个个点开看真心受不了,用工具一次性提取所有当前列表中页面所包含的图片看。

提取网页游戏割绳子(Cut The Rope)中用到的材质:

提取网页游戏割绳子(Cut The Rope)中用到的材质

提取网页游戏割绳子(Cut The Rope)中用到的材质

这个游戏都玩过吧?它有网页版的,是不是想看看它是由哪些基本元素组成的(不是做IT的或许就没兴趣了)?用基本模式就能提取到组成游戏的基本元素了。

提取HTML5 3D网页游戏/DEMO中使用的材质:

提取HTML5 3D网页游戏/DEMO中使用的材质

提取HTML5 3D网页游戏/DEMO中使用的材质

这是一个HTML5 CANVAS演示DEMO–3D赛车。没有深入研究过,不过看它用到的贴图材质似乎很厉害的样子。

宅男神器,宅男看图必备,批量浏览妹子图:

宅男神器,宅男看图必备,批量浏览妹子图

宅男神器,宅男看图必备,批量浏览妹子图

上图是用加强模式(氢弹)从一个Lofter归档页中提取的,妹子图是一个宅男们热衷的话题,有工具自然方便多了。

扩展在以上场景中的应用是不是能带来很多便捷呢?更多的使用方式等待你去发掘,你需要做的就是安装她,狠狠地使用她。

如何得到她?

想真实体验到扩展功能及精心设计的细节肯定需要安装它,你可以通过以下方式途径进行安装:

Chrome应用商店:

https://chrome.google.com/webstore/detail/dbjbempljhcmhlfpfacalomonjpalpko

扩展主页:

http://www.pullywood.com/ImageAssistant/

扩展已经提交到猎豹应用商店、360应用商店、百度浏览器应用商店,应该很快能够在里面找到它。

 

优酷去广告扩展:普利坞视频网站去广告原理及源码

首先,很抱歉现在才发这篇四月份承诺的文章及优酷去广告源码。虫子原本是OpenGG.Clean.Player的用户,只因后来无法稳定使用而萌生自己开发全新扩展的想法。扩展发布至今总计让超百万用户受益,chrome应用商店当前的用户数维持在十八万左右。在虫子公布捐助帐号后有大量网友慷慨解囊给予虫子莫大的支持,在此虫子对各位热心网友表示感谢,谢谢你们!由于受工作和生活影响,虫子没有足够的时间和精力来及时更新扩展以保证扩展的功能正常,因此虫子打算把能够重用的部分发布到Github上以供那些有志于为网友提供便利的网友能够更快捷地进行类似扩展的开发,现有扩展仍将更新维护。本文仅探讨视频广告屏蔽基本原理,不涉及具体细节,具体细节还需各位自己琢磨,本文也不会过多的讨论关于屏蔽视频网站广告在道德层面上的问题,扩展从来不对腾讯视频的广告进行屏蔽,因为Adblock能够进行屏蔽且腾讯视频没有选择在技术上与屏蔽进行对抗。虫子仅仅是为用户提供了一个工具,如果视频网站的用户体验够好,使用屏蔽扩展的用户数量自然会下降,解铃还须系铃人,虫子只希望各视频网站能够更多地为用户考虑,多学学Youtube,固步自封的结果只能是被时代淘汰。 言归正传进入本文的主题:去视频广告的原理。

Flash跨域请求与策略文件授权

进入正题前先提一下flash相关的前置知识。 common workflow between browser and servers. 上图展示的是浏览器在处理包含flash的页页时与不同服务器间的交互流程:

1、浏览器加载服务器(aaa.com)的页面及flash、样式表、图片、JS脚本等相关文件;

2、Flash需要加载另一台服务器(bbb.com)中资源,先请求该服务器中的crossdomain.xml文件获得得资源加载许可;

3、Flash加载该服务器(bbb.com)中的资源;

交互流程中2是flash为保护第三方服务器资源而定立的一条规则,当flash需要加载的资源不属于flash本身所在的 位置/域/服务器 时(即跨域访问),它需先向该资源所在的服务器请求一个策略文件看该服务器是否允许flash加载该服务器上的资源,如果返回的策略文件crossdomain.xml允许flash加载资源则flash正常加载该服务器上的资源,反之,如果返回的策略文件crossdomain.xml仅允许指定的几个域访问本服务器的资源而且flash所在的域不在其中则flash不进行下一步加载动作。这就是flash的跨域策略授权,相关的更详细内容请参见 设置 crossdomain.xml 文件实施 HTTP 流式传输

 Adblock plus与视频广告

adblock-plus 相信大部分看到这篇文章的网友都熟悉功能强大的Adblock plus,通过一些简单的规则文件就能屏蔽大量的广告,它的出现很大程度上让互联网页面变得清爽了,同时也在一定程度上加快了页面的载入速度。 虫子浅显地研究过其去广告的原理,主要是在浏览器层面阻止相关页面元素的显示、在网络层面阻断广告相关资源的的加载。不单单限于屏蔽页面元素广告,Adblock plus 曾经也是视频广告的屏蔽利器(对于Youtube这样的君子站点而言它仍然是最有效的),只因它的杀伤力如此之大且被广泛使用(360浏览器也集成了它的功能),国内各大视频网站在感觉到疼痛之后都纷纷在自己flash视频播放器中加入了广告屏蔽检测功能,一旦发现自家的视频开播前广告被屏蔽,轻则黑屏让网友坐等几十秒黑屏,重则直接禁止后续播放。各大视频网站的反屏蔽措施挽回了广泛屏蔽造成的损失,为增加收入,部分视频网站不顾用户体验开始疯狂增加视频开播前广告的时长,由原来十五秒增加到三十秒、四十五秒、一分钟乃至现在的标配七十五秒。漫长的等待让用户叫苦不迭,对于普通用户而言,除了忍受你还能做神马?买会员吧!糟糕的体验让一部分无法忍受的用户外逃,另一些有创造力的开发者开始寻求技术上的突破抗争,针对视频开播前广告的专业屏蔽工具登场,OpenGG.Clean.Player是最具有代表性的屏蔽工具之一。

OpenGG.Clean.Player与视频广告

opengg.clean.player 正所谓魔高一尺道高一丈(你也可以反过来说 ^_^),太极的黑白两面总能动态地达到平衡。对于flash播放器中加入屏蔽检测功能的做法,直接有效的屏蔽方式是通过某种方式加载修改过的flash播放器以绕过屏蔽检测甚至是直接跳过广告。   下图所示的是opengg.clean.player去广告的基本原理。 opengg.clean.player.prototypeopengg.clean.player扩展通过浏览器提供的接口把视频播放页中的flash播放器地址替换为已修改过的flash播放器地址,使得flash播放器中原有的广告屏蔽检查策略失效,从而达到屏蔽广告的目的。 由于flash播放器不从视频网站官方加载,任何在flash播放器内部所作的防护都难以凑效。为了保护自身利益,视频网站得用了更高明应对措施——flash资源加载前的策略授权。由于视频网站不至于傻到给你提供存储空间供存放修改过的flash播放器,因此修改过的flash播放器所在的域肯定和其需要加载播放相关信息的服务器所在的域不同,这就涉及到跨域的问题。如之前提到过的,flash在进行跨域请求前需先请求crossdomain.xml进行跨域请求授权检查,视频网站很容易就能够通过这一步对修改flash播放器的屏蔽方式进行屏蔽。 opengg.clean.player.failed 虽然通过开放的api仍能够对部分视频网站有限制地屏蔽广告,但除了跨域的之外还有一个性能相关的问题。由于加载flash播放器的方式会受到flash播放器所在的服务器的网络带宽、网络延时、性能及稳定性的影响,随着用户数量的增加,服务器的带宽颇受考验,一旦承载服务器出现任何导致扩展无法顺利加载flash播放器,所有采用该扩展的用户都将无法正常播放。

普利坞视频网站去广告

pullywood, antiADs对于上一节中提到的opengg.clean.player中可能出现的问题,按照原有的工作方式,跨域及flash播放器载体的问题都可以用一台/数台专有服务器来解决,但对于一款非盈利的浏览器扩展而言,要让开者自己去承担专有服务器产生的费用是不现实的。 为此,虫子制作了一款全新的去广告扩展,并使用一些”旁门左道”的技术来规避上述问题。对于扩展依懒第三方服务器进行flash播放器加载可能出现的稳定性问题,可以把flash播放器移至chrome扩展的内部,利用chrome提供的接口直接加载。对于跨域的问题则要使用不常见的方法来解决。 熟悉代理软件的网友应该都知道,代理软件里有一项代理验证的功能。为了验证代理地址的有效性,用户可以事先在代理软件中指定数个用于代理有效性验证的URL(如雅虎、intel等权威网站的主页等)并附上相关的关键词,代理软件进行验证时先通过代理服务器地址请求用户指定的URL,如果返回的内容中包含指定的关键词则表明代理服务器地址有效,反之,如果请求失败或返回的内容中不包含指定的关键词则表明该代理服务器地址无效。这里我们关心的是如果返回的内容中不包含指定的关键词时返回的是什么内容?不妨先来试验一下。

proxy_lab_0

proxy_lab_1

proxy_lab_2从上述试验中可以看到,向不存在的URL发送的请求以代理方式指向实际为web服务器也能成功访问该web服务器上页面,但请注意,该方法仅对那些没有进行域名绑定的web服务器有效,对于像百度、网易等这样的站点是行不通的,因为这些站点都进行了域名绑定,未经授权的域名是无法正常访问的。这里挖坟一个关于PR劫持的事件,09年的某一天,cnBeta上出现了一篇质疑某站点的PR值为10的文章:惊!这网站的PR也为10?,经分析发现该站是前期通过把域名解析到www.gov.cn这样的权威站点上来获取超高的PR值,该方法的成功实施是由于当时www.gov.cn的服务器没有对域名进行绑定导致的,目前的大部分站点都会对域名进行绑定,非授权域名即使解析到服务器IP上通常也无法进行正常访问。

对于去广告扩展而言,无需特定的web服务器来充当代理,只要设定的代理能够返回需要的crossdomain.xml进行授权就没有问题,经测试表明,api.youku.com就是一台能很方便地以代理方式进行跨域授权的web服务器,它就像”Mr. Yes”,以代理方式请求任何URL的crossdomain.xml它都会告诉你Yes,这就满足了扩展正常工作的必要条件。

pullywood.antiADs.youku.letv.tudou.sohu.ku6.iqiyi

上图简单地展示了扩展的工作机制,核心点是流程2及流程3,当浏览器访问包含特定视频播放器的页面时(流程2),播放器加载时会以事件驱动的方式触发播放器替换操作,从而使播放页(无论是站内页还是外链页)加载扩展内播放器(该播放器地址也可以是网络地址)。在进行跨域授权请求(流程3)时,请求被以代理方式劫持到了api.youku.com下(此地址也可以是任意一能提供crossdomain.xml授权的服务器)进跨域授权。依上述流程,扩展就能在不依懒专有服务器的情况下较稳定的进行广告屏蔽。

问题与局限性

与其他之前出现过的去广告扩展相比,本地加载加授权劫持的方式虽能提供稳定的去广告效果(事实上播放器的加载速度比官方还快),但相应的也会带来一些问题。由于需要代理控制权限,与代理扩展一起使用需要手动配置,对于很多网友来说可能会带来麻烦。另外一点是适用范围,由于扩展主要使用本地加载播放器的方式,这就导致它无法在360浏览器等默认不内置ppapi类型flash插件的浏览器上工作(使用在线播放器还是可以的,但这又涉及了稳定性的问题)。此外,由于播放器的加载方式采用的是地址替换,对于像吡哩吡哩这样使用flash内嵌加载视频播放器的外链页面无法进行正常屏蔽,除非把该内嵌播放器的flash也一并修改,但这样的工作量将大到难以接受,扩展的尺寸也将最终超出应用商店的限制。

扩展源码及相关脚本

最后附上去广告开源项目地址:com.pullywood.chrome.antiADs

(注:项目中不包含任何flash播放器文件,请自行下载修改。)

 

 

优酷去广告 扩展(已支持优酷去广告、土豆去广告、爱奇艺去广告、乐视网去广告、搜狐视频去广告、酷六去广告)

icon128

本扩展是一款Chrome浏览器中用以屏蔽国内部分视频网站广告的工具,扩展主要功能是去除视频播前强奸用户体验的几十秒广告及黑屏,目前已经支持的广告屏蔽的网站包括优优酷、土豆、爱奇艺、乐视网、搜狐视频、酷6等。

安装本扩展后可以在不安装其他广告屏蔽扩展的情况下屏蔽优酷、土豆、爱奇艺、乐视网、搜狐视频、酷6等视频网站的广告,但建议和AdBlock plus搭配使用。

如果在使用过程中发现诸视频网站正常功能无法使用的请况,请在留言反馈或到chrome应用商店反馈。

2013081002251528

本扩展的实现原理类似于之前由 鲁夫的爱 博主所制作的广告屏蔽扩展OpenGG.Clean.Player,两者都是通过修改视频网站的播放器以达到屏蔽的目的。但两者又有一些区别,主要区别在于:

· 把修改过的播放器置于扩展内部,而不依懒于反向代理服务器,从而使播放器在任何时侯都能够快速载入,规避了反向代理服务器被方攻击致下线而导致扩展功能失效的问题;

· 利用WEB服务器对代理请求的兼容性,把向视频请求授权的crossdomain.xml请求通过chrome开发接口中代理功能导向任意一开放权限的网站来实现资源请求授权,从而绕过了视频网站对资源请求的限制;

本扩展基于原生chrome浏览器开发,不能保证其在其他基于chrome的衍生浏览器上能正常工作。

请尊重他人劳动成果,礼貌留言,拒绝谩骂。个人精力有限,不能保证面面俱到,发现的问题我尽力修正,对未能及时解决的问题还请多多包涵。

(安装地址已经放至页面最后)

2013081375451825

2013120505107678

注意:

1、扩展自动升级后可能导致播放器显示出错的问题,通常清空浏览器缓存(按 Ctrl + Shift + Delete 快捷键可调出界面)后刷新页面可正常使用。

2、本扩展刚刚推出就有打包客赤裸裸地重新打包了本扩展,并在代码中附加了恶意代码,为保障你的个人权益,安装时请认清由 www.pullywood.com 发布!

提示:很多网友反馈问题时只浏览说无法播放、无法加载等,由于使用环境可能千差万别,实际测试过程中可能无法重现网友反映的情况,因此在反馈问题时请尽可能详细地提供问题出现时的场景,如:出问题的网页地址等对于网友反馈的问题,我尽力而为

已知问题:

1、最近有网友反映开启本扩展后无法播放youtube视频,本扩展和youtube视频无法播法无直接关系,但因为扩展的工作方式是加载本地播放器(扩展内部),请求优酷、爱奇艺等视频网站资源时为绕过资源授权限制必需使用代理控制,因此,此项特性将导致其他代理设置失效。如果你需要使用代理或代理扩展,请禁用本扩展后重开浏览器以实现代理功能;因本扩展工作原理限制,目前无法很好地处理这个问题,如果你有更好处理方式,肯请不吝赐教。

2、优酷付费会员登录后无法播放。

3、与Unblock Youku间的兼容性问题。

Release Log:

*****************************************************************************

2014/05/07 [V1.2.07] 更正一处导致部分优酷页面黑屏的错误播放器地址。

2014/05/02 [V1.2.06] 添加了缓存开关、播放器在线/离线选择开关、更新提醒开关,修复部分优酷新loader地址导致外链无法去广告的问题,修复pps引用iqiyi播放的问题(x64系统仍有部分页有问题),部分修复乐视屏蔽问题(外链未屏蔽)。

2014/04/13 [V1.2.05] 部分解决外部引用爱奇艺视频无法播放的问题(PPS有部分能正常播放,bilibili引用爱奇艺已能正常去广告播放)。

2014/04/11 [V1.2.04] 加入对360浏览器等不包含PPAPI类型flash插件的浏览器的支持。

2014/04/02 [V1.2.02] 修复爱奇艺官网升级导致屏蔽失效无法播放的问题。

2014/04/01 [V1.2.01] 修复优酷部分页面卡住不播放的问题(虽然今天是愚人节,但这不是忽悠你滴 ^_^)。

2014/03/29 [V1.2.00] 为所有可屏蔽网站加入独立开关以便屏蔽失效时或视频网站付费会员使用,修复乐视屏蔽失败的问题,修复搜狐外链屏蔽失败的问题,优酷加入非会员1080P播放支持。

2014/03/19 [V1.1.13] 优酷播放器更新为最新版本(测试),完全停用重定向操作以解决外链通过flash内嵌加载播放器无法播放的问题(如:bilibili.tv,此时将加载官方播放器,不能去广告),添加搜狐直播支持。

2014/03/09 [V1.1.12] 添加乐视网及搜狐视频的去广告支持,修复播放器加载方式调整后酷6部分页面无法播放的问题。

2014/02/28 [V1.1.11] 更新爱奇艺播放器为最新版本(已支持1080P播放)并修复无法屏蔽广告的问题。

2014/02/24 [V1.1.10] 改进本地播放器加载方式,以保证外链页面能正常播放视频(原有的重定向加载方式在当前及以后版本的chrome都不适用了,新的加载方式需要使用Tabs权限)。

2014/02/23 [V1.1.09] 修复chrome升级到最新版后flash插件阻止重定向页面中嵌套的flash播放器导致本地播放器无法加载的问题。

2013/12/05 [V1.1.08] 修复扩展在新版浏览器中可能导致的YouKu白屏等无法播放的问题及YouKu无法保存播放记录的问题。

2013/11/04 [V1.1.07] 修复扩展导致爱奇艺及酷6部分小栏目视频无法播的问题。

2013/10/31 [V1.1.06] 修复因爱奇异播放器参数变动导致播放器无法正常工作的问题,扩展加入代理兼容工作模式(测试版)。

2013/10/29 [V1.1.05] 修复酷6修改播放器加载方式后无法播放的问题。

2013/09/12 [V1.1.04] 修复因爱奇艺视频网站变动导致播放器无法播放的问题。

2013/09/01 [V1.1.03] 加入扩展工作环境检测功能,如果未能取得代理控制权限,主动停止加载本地播放器,并在图标上给出提示,以消除困扰。

2013/08/28 [V1.1.02] 修正 爱奇艺 视频被外部合作方以flash方式加载调用时无法加载本地播方器导致无法播放的问题,处理方式:直接加载爱奇艺官方播方器

2013/08/18 [V1.1.01] 添加#清空缓存#按钮并在新安装(升级)后自动清除浏览器缓存,避免因缓存问题导致黑屏而引起用户困扰

2013/08/16 [V1.1.00] 去除页面中可能阻挡视线的图标

扩展安装地址:

chrome应用商店: 普利屋视频网站去广告扩展(已支持优酷、土豆、奇艺、酷6)

安装文件下载: 本站下载CRX安装文件

百度网盘:  http://pan.baidu.com/s/1bnB3meb

(当前已经可以在包括 原版chrome、猎豹浏览器、百度浏览器、360浏览器 等上正常使用。)

 

QQ群:普利坞去广告② / 243725150 (问题答案:pullywood)

提示:

issue

 

 

该扩展目前已经停止更新,请见谅!