Dynamic Page Code Scraper with Button

带有启动按钮的 JavaScript 动态页面代码爬取脚本

  1. // ==UserScript==
  2. // @name Dynamic Page Code Scraper with Button
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description 带有启动按钮的 JavaScript 动态页面代码爬取脚本
  6. // @author z2004y
  7. // @match *://*/*
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. const button = document.createElement('button');
  16. button.textContent = '开始爬取页面代码';
  17. button.style.cssText = 'position: fixed; top: 10px; right: 10px; z-index: 9999;';
  18. document.body.appendChild(button);
  19.  
  20. button.addEventListener('click', () => {
  21. // 移除按钮
  22. button.remove();
  23.  
  24. try {
  25. // 克隆整个文档
  26. const clonedDocument = document.documentElement.cloneNode(true);
  27.  
  28. // 移除所有用户脚本相关的元素
  29. const userScripts = clonedDocument.querySelectorAll('[data-tampermonkey-script]');
  30. userScripts.forEach(script => script.remove());
  31.  
  32. // 获取清理后的页面 HTML 代码
  33. const pageHTML = clonedDocument.outerHTML;
  34.  
  35. console.log("页面完整 HTML 代码:", pageHTML);
  36.  
  37. // 获取页面标题作为文件名
  38. const pageTitle = clonedDocument.querySelector('head > title').textContent || 'page_code';
  39. const fileName = `${pageTitle}.html`;
  40.  
  41. // 创建 Blob 对象
  42. const blob = new Blob([pageHTML], { type: 'text/html' });
  43. const url = URL.createObjectURL(blob);
  44.  
  45. // 创建下载链接元素
  46. const a = document.createElement('a');
  47. a.href = url;
  48. a.download = fileName;
  49.  
  50. // 模拟点击下载链接
  51. a.click();
  52.  
  53. // 释放临时 URL
  54. URL.revokeObjectURL(url);
  55. } catch (error) {
  56. console.error('在获取或保存页面代码时出现错误:', error);
  57. }
  58.  
  59. // 恢复按钮
  60. document.body.appendChild(button);
  61. });
  62. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址