前几期写了一篇关于谷歌插件制作的文章,但是因为没有正经的小实战,一直鸽了这么多期文章,这里写一篇比较受关注的腾讯视频的水印去除的文章,方便各位日后爬取腾讯视频的时候总带其水印爬虫。 简单介绍一下 manifest.json 配置文件里面所需要的参数。 去除广告的原理很简单,我们首先定位到元素面板的广告节点,然后用JS方法 manifest.json 文件代码如下: advertising.js 代码如下: 在Chrome扩展程序下将代码打包进入 crx 中。
前景提要
学习制作谷歌插件对于爬虫喜欢使用 selenium 的人士有很大的帮助,可以解决访问网页出现的一系列问题。
回顾制作插件
Chrome拓展开发之去腾讯视频广告
remove
去除。
这里我们使用Chrome插件来实现,定位的函数是document.querySelectorAll
,获取到的是DOM对象,因而可以直接使用它下属的remove
方法去除。这里的定位CSS选择器我们需要根据具体的网站结构来编写。
这里的注入时机是在DOM渲染之后,也就是document.end
。全部代码如下
{ "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 } ] }
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){}
谷歌扩展打包
拿到crx之后即可给自己的小伙伴使用啦。
最后还是希望你们能给我点一波小小的关注。
奉上自己诚挚的爱心💖
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算