zoukankan      html  css  js  c++  java
  • Python爬虫连载9-JS加密之“盐”​、ajax请求

    一、JS加密之“盐”​

    1.salt属性“盐":多用于密码学,比如我们的银行卡是六位密码,但是实际上在银行的系统里,我们输入密码后,会给原始的密码添加若干字符,形成更加难以破解的密码。这个过程我们称为”加盐“。

     
    
    """
    
    处理JS加密
    
    """
    
    import time,random
    
    ​
    
    def getSalt():
    
        """
    
        salt公式:"" + ((new Date).getTime() + parseInt(10 *Matn.rnandom(),10))
    
        :return:
    
        """
    
        salt = int(time.time()*1000) + random.randint(0,10)
    
    ​
    
        return salt
    
    ​
    
    def getMD5():
    
        import hashlib
    
        md5zhi = hashlib.md5()
    
    ​
    
        md5zhi.update(v.encoding="uft-8")
    
        sign = md5zhi.hexdigest()
    
    ​
    
        return sign
    
    if __name__ == "__main__":
    
        getSalt()
    
    getMD5()

    二、ajax请求

    1.异步请求;

    2.一定会有url,请求方法,可能有数据

    3.一般使用json格式

    4.​案例:爬取豆瓣电影

    """
    
    爬取豆瓣电影排行榜
    
    """
    
    from urllib import request
    
    import json
    
    url = "https://movie.douban.com/typerank?type_name=%E5%89%A7%E6%83%85&type=11&interval_id=100:90&action="
    
    rsp = request.urlopen(url)
    
    data = rsp.read().decode()
    
    ​
    
    data = json.loads(data)
    
    print(data)

    这里报错了,是因为豆瓣有反爬虫机制,我们修改代码,把Python伪装成一个浏览器进行访问

     
    
    """
    
    爬取豆瓣电影排行榜
    
    """
    
    from urllib import request
    
    import json
    
    url_u = "https://movie.douban.com/typerank?type_name=%E5%89%A7%E6%83%85&type=11&interval_id=100:90&action="
    
    headers = {
    
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36"
    
    }
    
    url = request.Request(url_u,headers=headers)
    
    rsp = request.urlopen(url)
    
    data = rsp.read().decode()
    
    ​
    
    print(data)

    三、源码

    Reptitle9_1_JSEncryption.py

    Reptitle9_2_ajaxResponse.py

    https://github.com/ruigege66/PythonReptile/blob/master/Reptitle8_1_JSEncryption.py

    https://github.com/ruigege66/PythonReptile/blob/master/Reptitle9_2_ajaxResponse.py

    2.CSDN:https://blog.csdn.net/weixin_44630050

    3.博客园:https://www.cnblogs.com/ruigege0000/

    4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

     

  • 相关阅读:
    修改root密码
    环境的搭建(四)--------samba服务
    16.统一异常处理(上)编写自定义处理函数
    15.集成限流功能到我们的服务中(花操作必看)
    14.go内置的rate包学习2(有花操作,必看)
    13.go内置的rate包学习1
    12.使用负载均衡的方式调用服务(随机方式)
    11.使用负载均衡的方式调用服务(轮询方式)
    10.根据命令行参数注册多个服务
    9.consul获取服务实例,调用测试
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/12343908.html
Copyright © 2011-2022 走看看