Ban Bad Websites 标记/屏蔽机器翻译 SEO 垃圾网站

标记/禁用垃圾网站链接。主要针对机器翻译 Stack overflow 等 SEO 垃圾网站。

Ekde 2021/02/28. Vidu La ĝisdata versio.

  1. // ==UserScript==
  2. // @name Ban Bad Websites 标记/屏蔽机器翻译 SEO 垃圾网站
  3. // @namespace https://greasyfork.org/zh-CN/scripts/389721-ban-bad-websites
  4. // @version 0.4.15
  5. // @description 标记/禁用垃圾网站链接。主要针对机器翻译 Stack overflow 等 SEO 垃圾网站。
  6. // @author Phuker
  7. // @match *://*/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. /*
  12. Author:
  13. https://github.com/Phuker/
  14.  
  15. Project GitHub Repo:
  16. https://github.com/Phuker/BanBadWebsites
  17.  
  18. Greasy Fork:
  19. https://greasyfork.org/zh-CN/scripts/389721
  20.  
  21. License:
  22. GNU General Public License v3.0
  23. */
  24.  
  25. (function() {
  26. 'use strict';
  27.  
  28. // - - - - - - - - - - Start User Config - - - - - - - - - -
  29.  
  30. // 突出显示目标超链接,改变链接的颜色、装饰线、边框、指针样式等
  31. var option_highlight_link = true;
  32.  
  33. // 如果启用突出显示目标超链接,设置文字颜色
  34. // 示例:'red' '#CC0033' null
  35. var option_highlight_link_color = '#CC0033';
  36.  
  37. // 如果启用突出显示目标超链接,设置背景色
  38. // 由于 CSS 的特性,有可能无法正确设置想要的区域
  39. // 示例:'red' '#CC0033' null
  40. var option_highlight_link_background_color = null;
  41.  
  42. // 如果启用突出显示目标超链接,设置边框
  43. // 由于 CSS 的特性,有可能无法正确设置想要的区域
  44. // 示例:'solid 1px #CC0033'
  45. var option_highlight_link_border = null;
  46.  
  47. // 如果启用突出显示目标超链接,设置下划线、上划线、贯穿删除线等样式
  48. // 由于 CSS 的特性,某些情况下无效
  49. // 示例:'line-through solid #CC0033'
  50. var option_highlight_text_decoration = null;
  51.  
  52.  
  53. // 使目标超链接无法点击
  54. // [不推荐] 垃圾网站有时候还有一定参考价值,必要时可能仍然需要点击访问
  55. var option_disable_link = false;
  56.  
  57.  
  58. // 隐藏目标超链接
  59. // [不推荐] 此脚本不是特定网站的针对性脚本,无法完美删除目标超链接,可能会导致网页显示错乱
  60. var option_remove_link = false;
  61.  
  62. // - - - - - - - - - - End User config - - - - - - - - - -
  63.  
  64. var hosts = {
  65. '爬虫采集 SEO 机器翻译垃圾网站': [
  66. 'codeday.me',
  67. 'code.i-harness.com',
  68. 'djcxy.com',
  69. 'voidcc.com',
  70. 'itranslater.com',
  71. 'kknews.cc',
  72. '1r1g.com',
  73. 'xbuba.com',
  74. 'voidcn.com',
  75. 'codenong.com',
  76. 'helplib.com',
  77. 'jishuwen.com',
  78. 'androidcookie.com',
  79. 'soinside.com',
  80. 'kbase101.com',
  81. 'bbsah.com',
  82. 'cn.computer-clans.com',
  83. 'uwenku.com',
  84. 'ojit.com',
  85. 'stackoverrun.com',
  86. 'mlog.club',
  87. 'it-swarm.net',
  88. 'bullforyou.com',
  89. 'it1352.com',
  90. 'itkeyword.com',
  91. 'kutu66.com',
  92. 'stackovernet.com',
  93. 'orcode.com',
  94. 'qastack.cn',
  95. 'chubuntu.com',
  96. 'codebug.vip',
  97. 'it-swarm.asia',
  98. 'bugshoot.cn',
  99. 'stackoom.com',
  100. 'itdaan.com',
  101. 'z4q7.com',
  102. 'slowmotionvideoclips.com',
  103. 'bayouseo.com',
  104. '4659855.com',
  105. 'hotbarebaking.com',
  106. 'rsfaf.com',
  107. 'wanmeiyule2.com',
  108. 'ksa-boy.com',
  109. 'poolandspapartsmart.com',
  110. 'reallifetucson.com',
  111. 'fulucaijing.com',
  112. 'luxury-condos-miami.com',
  113. 'zkyshop.com',
  114. 'thehesedlove.com',
  115. 'dc120.com.cn',
  116. 'kaicen.cn',
  117. 'zhetiaohe.com',
  118. 'codecocoa.com',
  119. 'cctsuzhou.cn',
  120. 'juhc66.cn',
  121. 'artez.org.cn',
  122. 'hyhome.com.cn',
  123. 'bdqxgw.com',
  124. 'colabug.com',
  125. 'ohmyrss.com',
  126. 'ups360.net',
  127. '3li.cc',
  128. '723g.com.cn',
  129. 'xinhexinli.com',
  130. '585906.com',
  131. 'baopen.xyz',
  132. 'jrccn.cn',
  133. 'africamv.com',
  134. 'hotbak.net',
  135. 'pai-hang-bang.com',
  136. 'lanzhouyangsheng.com',
  137. '9999ktv.com',
  138. '52movs.com',
  139. 'zsyawen.com',
  140. 'pianshen.com',
  141. 'zhipanyou.com',
  142. 'bbsmax.com',
  143. 'shuzhiduo.com',
  144. 'codeqq.com',
  145. 'mamicode.com',
  146. 'bubuko.com',
  147. 'feimao777.com',
  148. 'geek-share.com',
  149. 'daimajiaoliu.com',
  150. 'dajiayouxi.com',
  151. 'gedixinxi.com',
  152. 'gushidazahui.com',
  153. 'jiankangjiaoliu.com',
  154. 'yuerxinde.com',
  155. 'xuexidushu.com',
  156. 'dnxxj.com',
  157. 'tiyujiaoliu.com',
  158. 'shishangjiaoliu.com',
  159. 'shehuiwenhua.com',
  160. 'naozhuanwan.com',
  161. 'meirongjiaoliu.com',
  162. 'yulejiaoliu.com',
  163. 'crifan.com',
  164. 'oox8.com',
  165. 'qu02.com',
  166. 'tongfengqu.com',
  167. 'wntzx.cn',
  168. 'dovov.com',
  169. 'cocoachina.com',
  170. 'coder.work',
  171. 'dofe.com.cn',
  172. '0937car.cn',
  173. 'ubuntuqa.com',
  174. 'it-swarm.dev',
  175. 'codingdict.com',
  176. 'jingjiamitan.com',
  177. 'zhezhier.com',
  178. 'win10xiazai.com',
  179. 'paradacreativa.es',
  180. 'thinbug.com',
  181. 'answer-id.com',
  182. 'mos86.com',
  183. 'jeepxie.net',
  184. 'qqyouyan.com',
  185. 'baobaoyuer.com',
  186. 'cnpython.com',
  187. 'routinepanic.com',
  188. '4008140202.com',
  189. 'pythonheidong.com',
  190. 'bugjia.net',
  191. 'generacodice.it',
  192. 'generacodice.com',
  193. '366service.com',
  194. 'oomake.com',
  195. 'itread01.com',
  196. 'soblog.cc',
  197. 'shangmayuan.com',
  198. 'read01.com',
  199. 'yuanmas.com',
  200. 'someabcd.com',
  201. 'mdeditor.tw',
  202. '1applehealth.com',
  203. 'movervip.com',
  204. 'glcopy.com',
  205. 'howtoip.com',
  206. 'copyan.com',
  207. 'shxy888.com',
  208. 'yiaisan.com',
  209. ],
  210. '博彩垃圾网站': [
  211. 'ceptchina.com',
  212. 'cwptz.com',
  213. 'danengtzs.com',
  214. 'dzim.net',
  215. 'lygzywl.com',
  216. 'meihuijj.com',
  217. 'rongtaihe1879.com',
  218. 'seaolife.com',
  219. 'stx160.com',
  220. 'tiyiba.com',
  221. 'winenine.com',
  222. 'xiaoxtea.com',
  223. 'zjwsrcw.com',
  224. '58pjy.com',
  225. '36511cp.com',
  226. 'sdtasdb.com',
  227. 'cairoibf.org',
  228. 'macaodaily.com',
  229. '52365o.com',
  230. 'wenliku.com',
  231. '36545622.com',
  232. '365888432.com',
  233. 'chnweiyu.com',
  234. '2266601.com',
  235. 'code5.cn',
  236. 'yangzheng365.com',
  237. 'nibaihe.cn',
  238. 'yxwjlrm.cn',
  239. 'yfkwzpc.cn',
  240. 'weikuanxi.cn',
  241. ],
  242. '垃圾下载站': [
  243. 'download.csdn.net',
  244. 'manong5.com',
  245. ],
  246. '垃圾中文技术性网站': [
  247. 'jb51.net',
  248. 'www.csdn.net',
  249. 'blog.csdn.net',
  250. 'yq.aliyun.com',
  251. ]
  252. };
  253.  
  254. var urls = {
  255. '机器翻译爬虫垃圾网站': [
  256. // http://www.imooc.com/wenda/detail/581525
  257. 'https://www.imooc.com/wenda',
  258. 'https://m.imooc.com/wenda',
  259.  
  260. 'https://cloud.tencent.com/developer/ask', // https://cloud.tencent.com/developer/ask/69735
  261. ],
  262. '垃圾 SEO 网站': [
  263. 'https://help.aliyun.com/wordpower/',
  264. ],
  265. }
  266.  
  267. var cursor_img = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABj1BMVEX4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT4BlT////D56oEAAAAg3RSTlMAROOgDAAAAAyg40QARNX/+44LAACO+9VE4/////2QCwD//+Og+////5AK+6AMjv38k44MAAv//wD////8Cv+TCgAA/5MKAAAAAAALkP/8kAsAAAALkP3///2QCwAMjv3/jgyg+/////ug4////+NE1f/7jo77/9VEAETjoAwMoONEAJyONeEAAAABYktHRIRi0FpxAAAAB3RJTUUH4wEJAyMIrljkvAAAAOhJREFUGNNjYGBkYmZhZWNnZ2Pl4OTi5mHg5eMXEBQSFhERFhIV4xeXYJCUkpaRlZNXUJCXk5VRVFJmUFFVU9eQ1dTS0pTVUJfR1mHQ1dPXUNcwMDQ0AFKyRsYMJqZyQCkzc3MzIF9OiJXBQlhe08DM0srK0tpGU17YgoFdRMHW0NyqudnKzt7B0YkdScDZxdXN3YPB08vbB6LF188/IDCIITgkNAxiaHhEZFR0DENsXHwC1FqgSGISQ3JKahrMYeHpGZkMWdk5CKfn5OYx5BcUFhVDPFdSWlZewVBZVV1TC/F+XX1DYxMA6lI04KQBZEYAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMDEtMDlUMDM6MzU6MDgrMDg6MDDq0TSKAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTAxLTA5VDAzOjM1OjA4KzA4OjAwm4yMNgAAAEN0RVh0c29mdHdhcmUAL3Vzci9sb2NhbC9pbWFnZW1hZ2ljay9zaGFyZS9kb2MvSW1hZ2VNYWdpY2stNy8vaW5kZXguaHRtbL21eQoAAAAYdEVYdFRodW1iOjpEb2N1bWVudDo6UGFnZXMAMaf/uy8AAAAYdEVYdFRodW1iOjpJbWFnZTo6SGVpZ2h0ADUxMo+NU4EAAAAXdEVYdFRodW1iOjpJbWFnZTo6V2lkdGgANTEyHHwD3AAAABl0RVh0VGh1bWI6Ok1pbWV0eXBlAGltYWdlL3BuZz+yVk4AAAAXdEVYdFRodW1iOjpNVGltZQAxNTQ2OTc2MTA4Y0VIZwAAABF0RVh0VGh1bWI6OlNpemUANjcyN0L99mrAAAAAYnRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vaG9tZS93d3dyb290L25ld3NpdGUvd3d3LmVhc3lpY29uLm5ldC9jZG4taW1nLmVhc3lpY29uLmNuL2ZpbGVzLzExNy8xMTc1NzQ5LnBuZ54B8P8AAAAASUVORK5CYII=';
  268.  
  269. // modified from PAC
  270. function dnsDomainIs(host, domain) {
  271. if(domain[0] === '.'){
  272. domain = domain.substr(1);
  273. }
  274. var idx = host.length - domain.length;
  275. return (host === domain) || (idx > 0 && host.lastIndexOf('.' + domain) == idx - 1);
  276. }
  277.  
  278. function ban_link(link, type){
  279. if(link.hasAttribute('phuker-banned')){
  280. return
  281. } else {
  282. link.setAttribute('phuker-banned', 'yes');
  283. console.log('Ban Bad Website: ' + link.href + ' - ' + type);
  284. }
  285. if(option_highlight_link){
  286. link.setAttribute('title', type);
  287. link.style.cursor = 'url(' + cursor_img + '), not-allowed';
  288. if(option_highlight_link_color){
  289. link.style['color'] = option_highlight_link_color;
  290. }
  291. if(option_highlight_link_background_color){
  292. link.style['background-color'] = option_highlight_link_background_color;
  293. }
  294. if(option_highlight_link_border){
  295. link.style['border'] = option_highlight_link_border;
  296. }
  297. if(option_highlight_text_decoration){
  298. link.style['textDecoration'] = option_highlight_text_decoration;
  299. }
  300. }
  301.  
  302. if(option_disable_link){
  303. link.style['pointerEvents'] = 'none';
  304. if(!option_highlight_text_decoration){
  305. link.style['textDecoration'] = 'none';
  306. }
  307. }
  308.  
  309. if(option_remove_link){
  310. link.style['display'] = 'none';
  311. }
  312. }
  313.  
  314. function process(link){
  315. for(let type in hosts){
  316. var h = hosts[type];
  317. for(let i = 0; i < h.length; i++){
  318. if(dnsDomainIs(link.hostname, h[i])){
  319. ban_link(link, type)
  320. return
  321. }
  322. }
  323. }
  324. for(let type in urls){
  325. var u = urls[type];
  326. for(let i = 0; i < u.length; i++){
  327. if(link.href.startsWith(u[i])){
  328. ban_link(link, type)
  329. return
  330. }
  331. }
  332. }
  333. }
  334.  
  335. function ban_bad_websites(){
  336. var links = document.getElementsByTagName('a');
  337. for(var i = 0; i < links.length; i++){
  338. let link = links[i];
  339. if(!link.hasAttribute('phuker-banned')){
  340. process(link);
  341. }
  342. }
  343. }
  344. window.addEventListener('load', ban_bad_websites);
  345. setTimeout(ban_bad_websites, 3 * 1000);
  346. setTimeout(ban_bad_websites, 10 * 1000);
  347. })();