美文网首页数据分析
Python爬虫--拦截ajax请求获取参数

Python爬虫--拦截ajax请求获取参数

作者: GG_lyf | 来源:发表于2020-11-20 08:48 被阅读0次

    前言

      在学了py的静态爬虫之后,总是感觉有点缺什么,仔细一想,静态的网页会了,但是有的网站人家用的是ajax搞的,这可怎么办啊!于是乎,就想搞点动态爬虫玩玩。


    开搞

    1.安装requestsjson

    2.伪装浏览器

    url = 'https://book.qidian.com/ajax/book/category?_csrfToken=BXnzDKmnJamNAgLu4O3GknYVL2YuNX5EE86tTBAm&bookId=3144877'
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
                   'Referer': 'https://book.qidian.com/info/3144877',
                   'Cookie': '_csrfToken=BXnzDKmnJamNAgLu4O3GknYVL2YuNX5EE86tTBAm; newstatisticUUID=1564467217_1193332262; qdrs=0%7C3%7C0%7C0%7C1; showSectionCommentGuide=1; qdgd=1; lrbc=1013637116%7C436231358%7C0%2C1003541158%7C309402995%7C0; rcr=1013637116%2C1003541158; bc=1003541158%2C1013637116; e1=%7B%22pid%22%3A%22qd_P_limitfree%22%2C%22eid%22%3A%22qd_E01%22%2C%22l1%22%3A4%7D; e2=%7B%22pid%22%3A%22qd_P_free%22%2C%22eid%22%3A%22qd_A18%22%2C%22l1%22%3A3%7D'
                   }
    

    3.使用requests发送请求 ,并转码

    res = requests.get(url=url, params=headers)
    s = str(res.content, "utf-8")
    

    4.使用json进行str到json的转换

    load = json.loads(s)
    
    打印结果

    5.逐层解析

        for (k, v) in load.items():  # 类型为dict
            if k == "data":
                for (i, j) in v.items():  # 类型为dict
                    if i == "vs":
                        for p in j:  # 类型为list
                            for (a, b) in p.items():  # 类型为dict
                                if a == "vId" or a == "cCnt" or a == "vN":  # py自带的判断
                                    print(a, b)
                                if a == "cs":
                                    for q in b:
                                        print(q)
    
    打印结果

    6.这些只是用于解析非vip的书,VIP的咱还不会啊

    相关文章

      网友评论

        本文标题:Python爬虫--拦截ajax请求获取参数

        本文链接:https://www.haomeiwen.com/subject/htqybktx.html