idc新人如何做自己的网站,网易企业邮箱彻底删除的邮件还能恢复吗,建站平台外贸,asp网站的优点点击上方“Python数据科学”#xff0c;选择“星标公众号”关键时刻#xff0c;第一时间送达#xff01;作者#xff1a;zuobangbang来源#xff1a;zuobangbang最近开始研究网页参数的JS加密#xff0c;但是大型网站的JS文件过于繁杂#xff0c;不适合新手上路#xf… 点击上方“Python数据科学”选择“星标公众号”关键时刻第一时间送达作者zuobangbang来源zuobangbang最近开始研究网页参数的JS加密但是大型网站的JS文件过于繁杂不适合新手上路于是乎找了几个简单的网页来学习学习。首先要和大家聊的是监听事件型爬虫(推荐FireFox浏览器)。简单介绍一下JS事件监听JavaScript之事件概念和监听事件1、事件的概念JavaScript使我们有能力创建动态页面网页中的每一个元素都可以产生某些触发JavaScript函数的事件。我们可以认为事件是可以被JavaScript侦测到的一种行为。2、事件流事件流主要分为冒泡型事件和捕获型事件。IE浏览器目前只支持冒泡型事件而支持标准DOM的浏览器比如火狐、Chrome等两者都支持。 3、使用返回值改变HTML元素的默认行为 HTML元素大都包含了自己的默认行为例如超链接、提交按钮等。我们可以通过在绑定事件中加上return false来阻止它的默认行为。4、通用性的事件监听方法(1)绑定HTML元素属性(2)绑定DOM对象属性document.getElementById(xxx).οnclicktest;(https://www.cnblogs.com/dorra/p/7349747.html)目标网站http://ac.scmor.com/第一次写js类的爬虫断点调试过程写详细些。鼠标点击现在访问时会前往另一个网页。用火狐浏览器打开元素定位到“现在访问”可以看到下图网页链接没有出现在源代码中相反在标签末尾有一个event这代表当点击“现在访问”这个事件发生时会被监听并做出相应的反应。点击“event”可以看到一个函数onclick(event)在这个函数里还有一个visit()函数这表示当点击“现在访问”发生时会引发onclick(event)的发生从而引发visit()函数。全局搜索(ctrlshiftf)搜索visit()可以看到下图有一个function visit(url)这就是我们要找的函数啦。(这一步开始使用谷歌浏览器)来分析一下这个函数它的变量是url也就是上图中visit(QSQ7XggEHBUhXDxYLwIFHwh4ZRkwXFI0Pw4jGj5ZXlI)的QSQ7XggEHBUhXDxYLwIFHwh4ZRkwXFI0Pw4jGj5ZXlI给它打断点点击“现在访问”此时urlQSQ7XggEHBUhXDxYLwIFHwh4ZRkwXFI0Pw4jGj5ZXlI不断点击(step over next function call)当走完strdecode()函数后url更新为要访问的页面。下一步就是找到这个函数并分析。找到的strdecode()函数如下此时stringQSQ7XggEHBUhXDxYLwIFHwh4ZRkwXFI0Pw4jGj5ZXlI再经过base64decode以后变成了一段乱码重新打一次断点经过base64decode(code)后返回需要的Url至此所有的断点调试就完成了。这是base64decode函数的代码里面有一个base64DecodeChars的变量在函数里是没有定义的因此后期自己加上。function base64decode(str) { var c1, c2, c3, c4; var i, len, out; len str.length; i 0; out ; while (i len) { do { c1 base64DecodeChars[str.charCodeAt(i) 0xff] } while (i len c1 -1); if (c1 -1) break; do { c2 base64DecodeChars[str.charCodeAt(i) 0xff] } while (i len c2 -1); if (c2 -1) break; out String.fromCharCode((c1 2) | ((c2 0x30) 4)); do { c3 str.charCodeAt(i) 0xff; if (c3 61) return out; c3 base64DecodeChars[c3] } while (i len c3 -1); if (c3 -1) break; out String.fromCharCode(((c2 0XF) 4) | ((c3 0x3C) 2)); do { c4 str.charCodeAt(i) 0xff; if (c4 61) return out; c4 base64DecodeChars[c4] } while (i len c4 -1); if (c4 -1) break; out String.fromCharCode(((c3 0x03) 6) | c4) } return out}还有一个问题最开始visit()的自变量在哪里呢网页源代码中都有的噢。一共16个镜像对应16个变量。找到了所有需要的js代码然后用python还原不用自己找虐python提供一个execjs的库可以直接调用js文件。一共15行代码就可以获得所需的网址啦。if __name__ __main__: urlhttp://ac.scmor.com/ headers{ User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36 } htmlrequests.get(url,headersheaders).text soupBeautifulSoup(html,lxml) infssoup.find(head).find_all(script,typetext/javascript) infsre.findall(rautourl(.*?);,str(infs)) node execjs.get() file 谷歌学术镜像.js ctx node.compile(open(file, encodingutf-8).read()) for inf in infs: datainf.split(,1)[1][2:-1] jsstrdecode({}) .format(data) print(ctx.eval(js))最后结果如下代码以及Js文件上传到GitHub(https://github.com/zuobangbang/javascript-decode/tree/master/google)觉得不错就star/fork下有兴趣可以自己做一遍。往期精彩推荐 2019年被高估的AI与数据科学该如何发展2018年原创精选文章汇总大型裁员现场究竟谁笑到了最后...这一年我都做了些什么