前景提要

前几期写了一篇关于谷歌插件制作的文章,但是因为没有正经的小实战,一直鸽了这么多期文章,这里写一篇比较受关注的腾讯视频的水印去除的文章,方便各位日后爬取腾讯视频的时候总带其水印爬虫。
学习制作谷歌插件对于爬虫喜欢使用 selenium 的人士有很大的帮助,可以解决访问网页出现的一系列问题。


回顾制作插件

简单介绍一下 manifest.json 配置文件里面所需要的参数。

  • name 拓展的名字,必须是字符串类型
  • version 字符串类型,是当前插件的版本号
  • description 拓展的介绍信息
  • permissions 是一个String数组,每一个权限都使用String来表示。某些关键权限在安装前会告知用户cookies 启动cookies权限tabs 启动管理Chrome浏览器标签栏权限activeTab 启动与当前页面交互的API权限contextMenus 启动右键菜单权限history 启动历史记录权限storage 启动本地存储数据权限debugger 启动使用debugger工具权限background 启动拓展后端环境
  • browser_action 浏览器的右上角显示default_title 鼠标移入,显示简短描述default_popup 鼠标点击,弹出的显示内容default_icon 右上角拓展图标
  • background 常驻后台脚本scripts 后台常驻,直到关闭浏览器一直执行的脚本popup 调试页面persistent 持久运行
  • content_scripts 向页面注入脚本matches 匹配网址的正则列表run_at 选择注入JS的时机document_start:所有css加载完毕,但DOM尚未创建时document_end:DOM创建完成,但图片及frame等子资源尚未加载时document_idle:document_end之后,window.onload之前js 需要注入的脚本文件列表all_frames 是否运行在页面所有的frame中
  • commands 使用命令 API 添加快捷键,并为它们绑定默认的组合键attach-debugger 命令名suggested_key 设置组合键description 命令描述
  • manifest_version manifest文件版本号。Chrome18开始必须为2

Chrome拓展开发之去腾讯视频广告

去除广告的原理很简单,我们首先定位到元素面板的广告节点,然后用JS方法remove去除。
这里我们使用Chrome插件来实现,定位的函数是document.querySelectorAll,获取到的是DOM对象,因而可以直接使用它下属的remove方法去除。这里的定位CSS选择器我们需要根据具体的网站结构来编写。
这里的注入时机是在DOM渲染之后,也就是document.end。

全部代码如下

manifest.json 文件代码如下:

{"manifest_version": 2,"name": "腾讯视频去除水印","version": "0.0.1","description": "解决腾讯视频爬虫出现水印的现象,进入谷歌后自动执行去除水印.","author": "Lux","content_scripts": [{"matches": ["https://v.qq.com/x/cover/*"],"run_at": "document_end","js": ["advertising.js"],"all_frames": true}]
}

advertising.js 代码如下:

var thread = function () {var nowTime = 0,maxTime = 15;var threadArr = [];this.addThread = function (fn) {threadArr.push(fn)}this.start=function () {doingThread();}var doingThread = function () {if (threadArr.length > 0) {if (nowTime < maxTime) {let now = new Date().getTime();var method = threadArr[0];method();threadArr.splice(0, 1);let nowNew = (new Date().getTime() - now);nowTime += nowNew;doingThread();} else {nowTime=0;setTimeout(doingThread, 1);}}else {setTimeout(doingThread,100)}}
}
var fn = function () {img = document.querySelectorAll('img.txp_waterMark_pic')if (img.length == 1){img.forEach(function(a){a.remove()});return true;}else{console.log('not img');return false}
}var thread = new thread();
thread.start()
try{for (let i = 0; i < 1000000; i++) {thread.addThread(function () {if (fn()){throw 'jumpout';}})}
}catch(e){}

谷歌扩展打包

在Chrome扩展程序下将代码打包进入 crx 中。

拿到crx之后即可分享给自己的小伙伴使用啦。

如有需要的小伙伴记得点击➡源码

css 水印_自制腾讯视频去除水印Chrome插件!厉害吧!相关推荐

  1. 自制腾讯视频去除水印Chrome插件!厉害吧!

    前景提要 前几期写了一篇关于谷歌插件制作的文章,但是因为没有正经的小实战,一直鸽了这么多期文章,这里写一篇比较受关注的腾讯视频的水印去除的文章,方便各位日后爬取腾讯视频的时候总带其水印爬虫. 学习制作 ...

  2. Python自制腾讯视频去除水印Chrome插件

    前景提要 前几期写了一篇关于谷歌插件制作的文章,但是因为没有正经的小实战,一直鸽了这么多期文章,这里写一篇比较受关注的腾讯视频的水印去除的文章,方便各位日后爬取腾讯视频的时候总带其水印爬虫. 学习制作 ...

  3. 自制腾讯视频去除水印Chrome插件

    前景提要 前几期写了一篇关于谷歌插件制作的文章,但是因为没有正经的小实战,一直鸽了这么多期文章,这里写一篇比较受关注的腾讯视频的水印去除的文章,方便各位日后爬取腾讯视频的时候总带其水印爬虫. 学习制作 ...

  4. 如何去除腾讯视频的水印

    如何用正确的姿势去除腾讯视频的水印 首先打开你想看的视频,这里以奇异博士为例 右键空白地方点检查 点开之后按Ctrl+F打开搜索,输入waterMark,找到第二个搜索结果,选中按del删除 成功去除 ...

  5. 下载腾讯视频里的视频_手机腾讯视频如何升级新版本

    软件是否好用,还得大家下载腾讯视频安装才知道.本文分享怎么下载腾讯视频里的视频_手机腾讯视频如何升级新版本腾讯视频升级新版本.腾讯视频电影频道拥有大量高清在线电影资源,热门高清电影.好评电影.电影预告 ...

  6. 腾讯视频下载的视频怎么导出来_手机腾讯视频怎么缓存视频电影

    本文小编给大家分享的是腾讯视频下载的视频怎么导出来_手机腾讯视频怎么缓存视频电影.相比其它的视频客户端,腾讯视频的多维度筛选,大数据比对,更有利于用户发现和推荐自己喜爱的影视剧内容.腾讯视频播放器推荐 ...

  7. 手机怎么给视频去除水印

    在休息的时候,相信有很多人的都是会拿着手机躺在床上或者是趴在桌子上去追剧.无论是偶像剧还是古装剧,总会有哪些比较甜甜的镜头,有的会选择保存那个部分的视频片段,再去分享到一些地方,有的平台对要上传的视频 ...

  8. 视频去除水印、台标和logo,并重新在生成新的视频

    视频去除水印.台标和logo 对于图片的水印和logo的去除,网上有很多办法,最直接的办法,打开photoshop,PS就可搞定,还有其他的图像处理软件效果也都不错,但是对视频的的水印.台标和logo ...

  9. 视频去水英视频去除水印工具今日头条自媒体运营推广视频教程学习资料短视频运营从零到精通...

    视频上的水印怎么去掉批量处理去重消重去水印去logo软件 ps去除水印视频教程批量处理去重消重去水印去logo软件 手机怎么去掉视频水印批量处理去重消重去水印去logo软件 手机去视频水印免费版批量处 ...

  10. 在线视频调速 chrome插件

    在线视频调速 chrome插件 网站视频播放格式主要为html5,flash等等. 对于主流视频网站 Chrome插件 video speed controller 在chrome网上应用商店下载安装 ...

最新文章

  1. php mod11 10公式,AQL RQL
  2. python官网下载安装教程-各种版本的Python下载安装教程
  3. 在.NET程序中使用PIPE(管道技术)
  4. 如何控制参照PR作PO时,PO的数量不能超过PR的数量
  5. python 数据分析里axis=0/1 行列定义为什么每次都不同?(比如pandas, numpy, DataFrame)
  6. import javax.servlet.http.HttpServletRequest 提示错误
  7. day18 15.自定义连接池
  8. sqldeveloper 连接oracle失败报12514(日常错误)
  9. leetcode 322. Coin Change | 322. 零钱兑换(动态规划)
  10. ML.NET机器学习、API容器化与Azure DevOps实践(二):案例
  11. 这家武汉工厂如果停工,全球都不答应
  12. AsyncTask理解- Day36or37
  13. 《那些年啊,那些事——一个程序员的奋斗史》——81
  14. 1106 冒泡排序的语法树
  15. Maven(一)之Maven入门
  16. Windows 安装配置Java开发环境《jdk8》
  17. MT【325】垂心的向量形式
  18. 如何通过压缩视频软件,减少大小且画质无损技巧
  19. 比较全面的安全测试用例设计思路
  20. Android给Activity取消title标题

热门文章

  1. 游戏服务器mysql封装_游戏服务端之C++封装Mysql
  2. elasticsearch 数据类型_ElasticSearch学习笔记
  3. storm配置:如何解决worker进程内存过小的问题
  4. python基础学习
  5. laravel中修改默认时区
  6. Zen Cart 如何添加地址栏上的小图标
  7. 关于Myeclipse自带JDK与本机安装JDK的的区别
  8. think in uml 2.1
  9. cacti 安装部署
  10. redis通过lua脚本实现分布式锁