感觉网上关于插件开发的文章不多,其实插件开发很简单,也很方便。比起 selenium 解析网页,用 javascript 代码直接嵌入浏览器要方便很多。本文介绍了一个简单的自动发弹幕的例子,其实用插件做爬虫也是可行的。插件本地存储可以用 localStorage 先把爬取的资源链接存好,然后做个页面用表格展示,表格另存到本地,再用 python 程序直接访问链接。

自动发弹幕这个例子只需要三个文件,manifest.json ,background.js ,Bw.png (插件图标)。

manifest.json 文件代码:

{"manifest_version": 2,"name": "弹幕助手","description": "自动填充弹幕","version": "1.0","permissions": ["tabs", "http://*/plus/flink_add.php", "https://*/plus/flink_add.php"],"background": {"scripts": ["background.js"]},"browser_action": {"default_title": "自动填充弹幕","default_icon": "Bw.png" }}

background.js 文件代码:

// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.// Called when the user clicks on the browser action.var sleep = function(time) {var startTime = new Date().getTime() + parseInt(time, 10);while(new Date().getTime() < startTime) {}
};function checkURL(url){console.log('URL:'+url);var flag = false;if(typeof url == "undefined" || null == url)url = window.location.href; // var regex = /.*\:\/\/.*\/form.php/;var regex = /https\:\/\/.*bilibili\.com.*/;var match = url.match(regex);if(typeof match != "undefined" && null != match)flag = true;return flag;
}function autoAddValue()
{  chrome.tabs.executeScript(null,// 直接修改 input 的 value 值可能会引发问题。因为浏览器会认为程序自动输入的值是输入框的默认值,认为用户并没有输入文字!{code:" var input = document.querySelectorAll('input.bilibili-player-video-danmaku-input')[0]; \var playbutton = document.querySelectorAll('div.bilibili-player-video-state')[0];\var ClickDiv = document.querySelectorAll('div.bilibili-player-video-btn-send')[0];  \\function fireClick(node){ \if (document.createEvent) {\var evt_m = document.createEvent('MouseEvents');\evt_m.initMouseEvent('click', true, false);\node.dispatchEvent(evt_m);    \} else if(document.createEventObject) {\node.fireEvent('onclick') ;    \} else if (typeof node.onclick == 'function') {\node.onclick();    \}\}\function inputValue(dom, st) {\var evt = new InputEvent('input', {\inputType: 'insertText',\data: st,\dataTransfer: null,\isComposing: false\});\dom.value = st;\dom.dispatchEvent(evt);\}\\fireClick(playbutton);\inputValue(input, '这个视频我看了好多遍了,讲得好。');\function bullet(){\setInterval(function(){ \fireClick(ClickDiv);  \console.log(\"点击一下\");\}, 9000);\}\setTimeout(\"bullet()\", 5000 );\"});
}var countUpdate = 1;chrome.browserAction.onClicked.addListener(function(tabId,changeInfo,tab){ countUpdate = 1;
});chrome.tabs.onCreated.addListener(function(tabId,changeInfo,tab){ if(checkURL(tab.url)){countUpdate = 1;}
})  chrome.tabs.onUpdated.addListener( function(tabId,changeInfo,tab){ if(countUpdate==2){sleep(5000);if(checkURL(tab.url)){autoAddValue();chrome.tabs.executeScript({code: 'document.body.style.backgroundColor="#f2d649";console.log('+countUpdate.toString()+');'   // 黄色});}else{console.log('不是bilibili网站!');   // 这个无法显示在页面上,因为不是同一个页面。chrome.tabs.executeScript({code: 'document.body.style.backgroundColor="#f24182"'    // 红色});}}    countUpdate = countUpdate + 1;
});// https://www.bilibili.com/video/BV1Ht411y73G?p=4

background.js 就是从浏览器启动一直在后台运行的东西。这个文件的功能是,如果网页是B站播放页面就把背景改为黄色,否则红色。在弹幕输入框输入“这视频很好.....”这句话,然后每9s发送一次。注意,输入文本和点击都必须发送事件,input 直接修改 value 属性是没用的。

把三个文件放在一个文件夹下,打开浏览器扩展页的开发者模式,把文件夹拖入扩展页,安装完成。

如果想了解插件还有什么其他的能力,访问  Chrome插件(Extensions)开发攻略 。

chrome 插件--B站自动发弹幕相关推荐

  1. 每日小技巧,用python给喜欢的主播自动发弹幕

    文章目录 写在前面 实现步骤 写在前面 发弹幕只是其中一个小小的功能,还可以自动点赞.收藏.投币.自动播放.私信等等,但是我们只演示这个,其它的不做展示. 实现步骤 先打开一个视频或者直播,F12打开 ...

  2. 自动刷帖机器人 python_虎牙自动发弹幕机器人 python+airtest实现

    无聊 上虎牙看直播的时候就想带节奏 /手动滑稽 哈哈哈哈 写了一个python脚本实现,感觉效果还不错,分享给大家 基本逻辑: 1.自动登录.需配置好账号密码. 2.可以从一个主播房间列表中随机选取一 ...

  3. python弹幕代码_python实现B站自动刷弹幕

    这是根据刚入b站的大佬@小段不二 的av83610261写的,算是交作业了 用到的软件:Chrome Python+pycharm (vs code或者其他ide都可以不过pycharm实在是太香了) ...

  4. 给喜欢的主播自动发弹幕——但是用python

    写在前面 发弹幕只是其中一个小小的功能,还可以自动点赞.收藏.投币.自动播放.私信等等,但是我们只演示这个,其它的不做展示. 实现步骤 先打开一个视频或者直播,F12打开开发者工具,点击network ...

  5. (4)Show_Rank(Chrome插件)——PC端自动显示CCF会议/期刊等级

    一.安装 是一款Chorm插件,目前支持在 IEEExplore (https://ieeexplore.ieee.org/) 和ACM Digital Library (https://dl.acm ...

  6. python自动发弹幕_一个直播弹幕机器人诞生过程,Python制作自动发送弹幕小程序...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬取B站弹幕视频讲解 https://www.bilibili.com/vide ...

  7. 虎牙弹幕器(自动发弹幕,导入导出文件,检测是否发出,自动化工具加虎牙人气)(具有图形化界面)

    最近又个老板让我给他写个虎牙自动弹幕机,我利用pyqt还有webdriver进行了实现 大致图是这样的: 选择保存有一万个虎牙账号的cookie文件 这里是展示导出文件 这里是普通界面 这是大致一些运 ...

  8. Python斗鱼直播间自动发弹幕脚本

    工具:Python,Chrome浏览器 因为不会用短信验证码登录,所以使用QQ帐号登录,必须要斗鱼帐号绑定QQ号. 难点主要是帧的切换. 查找元素可以通过chrome浏览器鼠标指向该元素,然后右键点击 ...

  9. 涉及上千款,2021 Chrome插件性能影响分析报告新鲜出炉

    译者 | 弯月     责编 | 晋兆雨 出品 | CSDN(ID:CSDNnews) 以下为译文: 这篇报告调查了 1000 个最流行的 Chrome 插件对浏览器性能和最终用户体验的影响. 202 ...

  10. chrome插件(尖兵一号)实现自动刷新淘宝m站的cookie

    1.背景 最近接手了爬虫的项目, 爬取对象是天猫和京东的价格相关的数据, 其中对于天猫的优惠券的爬取需要有已登录的cookie才能成功爬到数据. 之前对于这块的cookie都是我们手动用自己淘宝账号登 ...

最新文章

  1. grep 的特殊使用
  2. Coefficients: (1 not defined because of singularities)
  3. 解决mongodb ISODate相差8小时问题
  4. Android系统,动态找出一个包下所有的类
  5. 趋势发展之人工智能,入行要趁早
  6. Java黑皮书课后题第5章:5.4(将英里转换成千米)编写程序,显示下面的表格(注意:1英里为1.609千米)
  7. Win11任务栏如何设置在顶部
  8. mysql 5.1版本无innodb trx_MySQL 5.7: Innodb 事务子系统优化-阿里云开发者社区
  9. qt 子窗口写到线程就卡死_Qt多线程创建
  10. 4.2 tensorflow2实现多总体位置参数趋势性检验——python实战
  11. linux shell su root失败
  12. linux的uapi文件夹,【linux】Linux kernel uapi header file(用户态头文件)
  13. 如何修复win7蓝牙服务器,高手亲自解决win7卸载蓝牙驱动的修复操作
  14. 新物联网!新电商平台!
  15. kettle下载百度网盘地址含入门教程7(全库表迁移)
  16. I tell you 如何下载文件
  17. 2021.7纪中快乐游记(下)
  18. ldirectord 介绍
  19. (7.1)【虚拟机的数据隐藏】隐藏虚拟环境:(MojoPac)在U盘中创建虚拟环境
  20. python自然语言处理-学习笔记(一)之nltk入门

热门文章

  1. java web 发送短信_java程序或javaweb(网站)向手机发送短信
  2. 2021年一季度口腔护理行业网络关注度分析报告
  3. Lora sx1278+stm32(ADC录音)+SPPEX音频压缩 数字对讲机
  4. dw中html是什么,dw中的css是什么意思?
  5. Windows 10 C盘大瘦身
  6. 携程实时大数据平台实践分享
  7. 微处理器 微型计算机 单片机之间有何区别,微处理器,微计算机,微处理机,CPU,单片机,它们之间有何区别...
  8. 荣耀手机wifi信号如何连接服务器,教你手机无限流量免费上网 荣耀WiFi实测
  9. 长城脚下世园会倒计时100天 国际参展方数量史上最多
  10. echarts散列图示例