【油猴脚本】00037 案例 Tampermonkey油猴脚本,爬虫, 仅用于学习,不要乱搞。网页数据获取器-遮罩提升层级不遮挡。Jquery爬虫,HTML Css JavaScript编写

9,942次阅读
没有评论

共计 8202 个字符,预计需要花费 21 分钟才能阅读完成。

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎 收藏 + 关注 哦 💕

【油猴脚本】00037 案例 Tampermonkey 油猴脚本, 爬虫, 仅用于学习, 不要乱搞。网页数据获取器 - 遮罩提升层级不遮挡。Jquery 爬虫,HTML Css JavaScript 编写
【油猴脚本】00037 案例 Tampermonkey 油猴脚本, 爬虫, 仅用于学习, 不要乱搞。网页数据获取器 - 遮罩提升层级不遮挡。Jquery 爬虫,HTML Css JavaScript 编写

【油猴脚本】00037 案例 Tampermonkey 油猴脚本, 爬虫, 仅用于学习, 不要乱搞。网页数据获取器 - 遮罩提升层级不遮挡。Jquery 爬虫,HTML Css JavaScript 编写

目录

  • 【油猴脚本】00037 案例 Tampermonkey 油猴脚本, 爬虫, 仅用于学习, 不要乱搞。网页数据获取器 - 遮罩提升层级不遮挡。Jquery 爬虫,JavaScript 爬虫,HTML+Css+JavaScript 编写
  • 使用的库:
    • Bootstrap3 的 Css 库 CDN
      • Bootstrap3 的文档:[https://v3.bootcss.com/](https://v3.bootcss.com/)
    • Jquery 库 CDN,Jquery 库文档:
      • jquery 官网:
      • jquery 中文网站:
    • sheetjs 库 CDN:
    • Jquery 的库 JqueryUi CDN:
  • 📚一、效果
  • 📚二、核心解析
    • 💡修改.modal 的 z -index 的层级为 100000:
  • 📚三、完整源代码,可以直接复制使用
  • 📚四、使用此代码的方法:

📚📗📕📘📖🕮💡📝🗂️✍️🛠️💻🚀🎉🏗️🌐🖼️🔗📊👉🔖⚠️🌟🔐⬇️·正文开始⬇️·🎥😊🎓📩😺🌈🤝🤖📜📋🔍✅🧰❓📄📢📈 🙋0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣🔟🆗*️⃣#️⃣

【油猴脚本】00037 案例 Tampermonkey 油猴脚本, 爬虫, 仅用于学习, 不要乱搞。网页数据获取器 - 遮罩提升层级不遮挡。Jquery 爬虫,JavaScript 爬虫,HTML+Css+JavaScript 编写

使用的库:

Bootstrap3 的 Css 库 CDN

https://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.css

Bootstrap3 的文档:https://v3.bootcss.com/


Jquery 库 CDN,Jquery 库文档:

 https://code.jquery.com/jquery-1.9.1.min.js

jquery 官网:

https://jquery.com/

jquery 中文网站:

http://asprain.oss-cn-hangzhou.aliyuncs.com/category-ajax.htm


sheetjs 库 CDN:

 https://cdn.sheetjs.com/xlsx-0.20.1/package/dist/xlsx.full.min.js

Jquery 的库 JqueryUi CDN:

https://cdn.bootcdn.net/ajax/libs/jqueryui/1.13.3/jquery-ui.min.js

📚一、效果

原效果

 在这里插入图片描述

更改后

 在这里插入图片描述


📚二、核心解析

💡修改.modal 的 z -index 的层级为 100000:

.modal{
	background: rgba(0,0,0,0.5);
	z-index:100000; 
}

📚三、完整源代码,可以直接复制使用

✍️JavaScript




















(function () {
  'use strict';

  let tableHtml = `
    
网页数据获取器
功能区
🛼 拖拽这里移动位置
➖ 缩小窗口
➕ 放大窗口
操作区
配置多页参数区
`
let cssMore = ` .modal{background: rgba(0,0,0,0.5); z-index:100000; } .card-title{ line-height: 1; font-size: 24px; font-weight: 500; margin-bottom: 10px; text-align:center; } #draggableArea{cursor:move;} .table-card{ position:fixed; left:100px; top:150px; z-index:99999; background:#fff; box-shadow: 0px 0px 0 10px #E95C8A; overflow: hidden; } .modal-body{ max-height:500px; overflow-y: scroll; } .msgWrap{ padding:10px; margin-top:10px; } .msgContent{ background:#000; max-height:100px; overflow-y:scroll; } .loadMsg{ color:#fff; width: fit-content; font-size: 16px; font-family: monospace; clip-path: inset(0 3ch 0 0); animation: loadMsgAni 1s steps(4) infinite; } @keyframes loadMsgAni {to{clip-path: inset(0 -1ch 0 0)}} table thead, tbody tr { display: table; width: 100%; table-layout: fixed; } .table-card tbody{display:block;height:200px; overflow:auto; -webkit-overflow-scrolling: touch;} .table-card tbody::-webkit-scrollbar {display: none; // 隐藏滚动条} .form-group:last-child{margin-bottom:0;} .btn-primary { color: #fff; background-color: #E95C8A; border-color: #E95C8A; } .btn-primary:hover, .btn-primary:focus, .btn-primary.focus, .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { color: #fff; background-color: #c7275b; border-color: #c7275b; } .scaleDownCard{ width:230px; height:213px; } .scaleDownCard .draggableBtn {margin-bottom:10px;} #scaleUpArea{display: none;} .scaleDownCard #scaleDownArea{display: none;} .scaleDownCard #scaleUpArea{display: inline-block;} ` let bsCss = GM_getResourceText('bootstrapCss') let startPageNum = 2 let endPageNum = 4 let isOrderNumber = true GM_addStyle(bsCss) GM_addStyle(cssMore) $('body').append(tableHtml) $('.table-card').draggable({ handle: '#draggableArea', containment:"window" }) const initCols = (strArr)=>{ let addTableHtml = '' if(isOrderNumber){ addTableHtml = `序号` }else{ addTableHtml = `` } for (const x of strArr) { addTableHtml += `${x}`; } addTableHtml += ``; if(isOrderNumber){ addTableHtml += `1` }else{ addTableHtml += '' } for (const y of strArr) { addTableHtml += `默认无值`; } addTableHtml += `` return addTableHtml } let tableColsArr = localStorage.tableColsArr?localStorage.tableColsArr.split(','):['公司名称','招聘职位','薪资'] let cssSelectorArr = [] cssSelectorArr.push('.job-card-wrapper .job-card-right .company-name a') cssSelectorArr.push('.job-card-wrapper .job-card-left .job-title .job-name') cssSelectorArr.push('.job-card-wrapper .job-card-left .salary') cssSelectorArr = localStorage.cssSelectorArr?localStorage.cssSelectorArr.split(','):cssSelectorArr let initColHtml = initCols(tableColsArr) $('#test_table').html(initColHtml); let editTableCols = ` ` const colsRender = (optionStr,dataOptionStr,idxOption)=>{ if(!dataOptionStr){ dataOptionStr = '无参数,请填写参数,参数是 css 选择器' } let str = `
${idxOption}
${idxOption}"class="form-control"value="${optionStr}">
${idxOption}"class="form-control"value="${dataOptionStr}">
`
return str; } const colsMoreRender = (strArrOpt)=>{ let str = '' for(const x in strArrOpt){ if(cssSelectorArr.length>0){ let idxNum = parseInt(x)+1 str += colsRender(strArrOpt[x],cssSelectorArr[x],idxNum) }else{ str += colsRender(strArrOpt[x]) } } return str; } let colsMoreStr = colsMoreRender(tableColsArr) $('body').append(editTableCols); $('#editTableColsModal .modal-body').html(colsMoreStr) const getFormData = ()=>{ let strArr = [] cssSelectorArr = [] $('#editTableColsModal .modal-body .form-group input').each(function(idx,eleItm){ let formName = ''; let cssName = '' let $eleItem = $(eleItm); if(idx%2===0){ formName = $eleItem.val(); strArr.push(formName) }else{ cssName = $eleItem.val() cssSelectorArr.push(cssName) } }) localStorage.tableColsArr = strArr; localStorage.cssSelectorArr = cssSelectorArr; return strArr; } $("#editCols").click(function(){ $('#editTableColsModal').show() }) $(".colseBtn").click(function(){ $('#editTableColsModal').hide() }) $("#btn_submit").click(function(){ $('#editTableColsModal').hide() let getTableColsArr = getFormData() let renderColHtml = initCols(getTableColsArr) $('#test_table').html(renderColHtml); }) $(".modal-body").on('click','.delCol',function(){ if($('#editTableColsModal .panel').length === 1){ alert('至少保留一个列') return false; } $(this).parents('.panel').remove(); }) $('#btn_addCol').on('click',function(){ let panelLength = $('#editTableColsModal .panel').length; let currentPanelNum = panelLength + 1; $('.modal-body').append(colsRender('新列请重新命名',null,currentPanelNum)) }) $('#run').click(function(){ getData() }) let dataRange = {} $('#getDataRange').click(function(){ $('#dataRangeForm input').each(function(idx,item){ dataRange[item.name] = item.value.replace(/s+/g, '') }) let startPageIdx = dataRange.startPageIdx1 + dataRange.startPageIdx2 +dataRange.startPageIdx3 let endPageIdx = dataRange.endPageIdx1 + dataRange.endPageIdx2 +dataRange.endPageIdx3 startPageNum = parseInt(dataRange.startPageIdx2) endPageNum = parseInt(dataRange.endPageIdx2) run() }) $("#outExcel").click(function(){ let obj = { htmlElementTable: '#test_table', excelSaveName: '获取的数据' } htmlTableToExcel(obj) }) $("#scaleDownArea").click(function(){ $('.table-card').toggleClass('scaleDownCard') }) $("#scaleUpArea").click(function(){ $('.table-card').toggleClass('scaleDownCard') }) let strHtml = '
'
let cssStyle = ` #testHtml{ width:100px; background:blue; } ` GM_addStyle(cssStyle) $('body').append(strHtml) function getHtml(num){ msg(`正在获取第 ${num}`) let requestUrl = dataRange.startPageIdx1 + num +dataRange.startPageIdx3 $.ajax({ url: requestUrl, timeout: 30000, success: function(html){ $('#testHtml').append(html) msg(`${num} 页加载完成`) if(num === endPageNum){ getData() } }, error:function(er){ console.log('er',er) }, complete:function(co){ console.log('co',co) } }); } function run(){ msg('开始获取') setInterval(function(){ if(startPageNum>endPageNum){ return false; } getHtml(startPageNum) startPageNum++ },10000) } function getData(){ msg('正在获取全部数据') let eleTotalColArr = [] cssSelectorArr.forEach(function(item,idx){ let eleByColArr = [] $(item).each(function(idex,ite) { eleByColArr.push($(ite).text()) }) eleTotalColArr.push(eleByColArr) }) let trs = '' let totalLIneNum = eleTotalColArr[0].length; let fieldNum = eleTotalColArr.length; for (let i=0;itotalLIneNum;i++){ let tds = '' if(isOrderNumber){ tds = `${i+1}` } for(let i2 = 0;i2fieldNum;i2++){ tds += `${eleTotalColArr[i2][i]}` } trs += `${tds}` } $('.table-card tbody').html(trs); msg(`全部数据获取完成, 共计获取 ${totalLIneNum}`) } function msg(msgStr){ let msgHtml = `
${msgStr}•••
`
let $msgContent = $('.msgWrap .msgContent'); $msgContent.append(msgHtml).scrollTop($msgContent.prop('scrollHeight')) } function htmlTableToExcel(objOptions){ if(!objOptions){ alert("请填写函数调用参数") return false; } let opt = objOptions; let html_table = document.querySelector(`${opt.htmlElementTable}`) const wb = XLSX.utils.book_new() const worksheet = XLSX.utils.table_to_sheet(html_table) XLSX.utils.book_append_sheet(wb, worksheet, "Sheet1"); XLSX.writeFile(wb, `${opt.excelSaveName}.xlsx`) } })();

📚四、使用此代码的方法:

1. 浏览器打开 https://developer.mozilla.org/zh-CN/
2. 把代码复制进油猴脚本,打开运行开关,刷新页面

  • 安装教程:👉 https://blog.csdn.net/qq_33650655/article/details/142097760
  • 使用教程:👉 https://blog.csdn.net/qq_33650655/article/details/142183047

到此这篇文章就介绍到这了, 更多精彩内容请关注本人以前的文章或继续浏览下面的文章,创作不易,如果能帮助到大家, 希望大家多多支持宝码香车~💕,若转载本文,一定注明本文链接。


【油猴脚本】00037 案例 Tampermonkey 油猴脚本, 爬虫, 仅用于学习, 不要乱搞。网页数据获取器 - 遮罩提升层级不遮挡。Jquery 爬虫,HTML Css JavaScript 编写

更多专栏订阅推荐:
👍 html+css+js 绚丽效果
💕 vue
✈️ Electron
⭐️ js
📝 字符串
✍️ 时间对象(Date())操作

原文地址: 【油猴脚本】00037 案例 Tampermonkey 油猴脚本, 爬虫, 仅用于学习, 不要乱搞。网页数据获取器 - 遮罩提升层级不遮挡。Jquery 爬虫,HTML Css JavaScript 编写

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-29发表,共计8202字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)