zoukankan      html  css  js  c++  java
  • 爬虫之加密JS原理

    一. 什么是JS加密?

      ①加密JS:对JS源码进行加密

    <script type="text/javascript">
    	window.onload=function(){
    	var _$cP=document.getElementById(_$xg('KkA6KOpFiYE'));
    	_$eM(_$cP.name,_$n0(_$cP,_$tq('eavul')));
    };
    </script>
    

       JS是运行在浏览器里面的语言,也就是我们所理解的前端语言。JS可以对一些前端参数进行加密,以便服务器后台便于验证。如对用户名和密码进行加密,后端可以判断是否是正确的请求还是恶意的攻击。加密可以是一种常见的算法,如MD5等方法,如果前端浏览器可以看到未经加密的JS,那么模仿其加密过程或者逆向解密也是不难的。所以,此时的JS加密之后就可以预防这些了。

    二. 爬虫里面的JS加密?

       为了防止别人爬取网站里面的内容,使用JS加密cookie就可以区别你是浏览器正确的请求还是使用诸如Httpclient等框架在爬取网页内容了,毕竟现在的普通的爬虫框架只是负责拿着你给的URL传递一些参数获取网页源码的工具,它们不能运行JS,也就无法对服务器需要验证的参数进行加密,从而导致服务器会拒绝你的请求,给你返回一个不是你所期望的网页内容的页面。
    加密JS请求过程

    三. 如何解决加密JS?

     上面只是普通的爬虫框架不能解决的问题,但是既然有盾,那么也就会有矛的。下面介绍几款比较好用的矛。

      ①.Selenium:该框架可以基于真实的浏览器测试框架,可以运行JS。该框架会打开我们本地的谷歌或者火狐等浏览器进行操作,所以可以说这是一个自动化的测试框架,但是作为爬虫却是较慢了。毕竟你要是开几十个谷歌浏览器窗口去获取网页源码怕是有点慢。加密的JS只是起到了混淆的作用,浏览器可以运行,那么该框架也可以运行这些被加密过的JS从而得到你所需要的参数。
      ②.PhantomJS:这是一个没有页面的浏览器内核,它可以像真实的浏览器一样进行网页的一些操作,只是没有界面。

  • 相关阅读:
    AjaxPro.2.dll基本使用
    能够按页号提取word文档文本内容的小程序,由C#实现
    Reflect反编译C#程序
    模态对话框
    【转】Google Chrome如何保存密码口令
    Android 应用的签名的基本原则
    几款keylogger
    对一个利用短链接进行钓鱼行为的小小分析
    2011年10月百度笔试 RD3—第4题
    TCP中有哪些机制保证了可靠传输
  • 原文地址:https://www.cnblogs.com/lizijuna/p/11907394.html
Copyright © 2011-2022 走看看