python爬虫之路【3】mitmdump以及mitmweb的简单爬取app上的小说

 

前言:这几天依旧在捣鼓抓手机app上的数据,发现有些好抓,有些加密的不好搞。。。

环境:win10,py3.7,手机模拟器,mitmproxy

关于mitmproxy可以看这篇博客:https://blog.csdn.net/qq_40733911/article/details/87617171


目标:抓取手机app的小说

第一步先配置好手机和电脑

可以参考上面那篇博客

第二步分析请求

把其它请求过滤掉,点换一换可以发现有一个请求包含书的信息

看一下response

 发现正是所需的信息

那就继续在浏览器中请求一下

果然没错

 继续分析,发现同一个url,每一次刷新返回的json数据是不同的!!!

就算说这个就算是一个接口,只要不停的请求这个就可以得到不同的数据

就直接用requests库请求然后json库分析就好了

但后面我还是用mitmdump来对接一下python

第三步写脚本

import json
from mitmproxy import ctx


def save_to_file(text):
    with open('books.txt', 'a') as f:
        f.write(json.dumps(text, ensure_ascii=False) + '\n')
        f.close()


def response(flow):
    url = 'http://read.xiaoshuo1-sm.com/novel/i.php?do=is_payreco&id=1247212108&qtf=shuqiApp&qtn=cpSearchReplace_u2i&nums=8&userId=1247212108&sn=1550982792332650&imei=864895024087254&_='
    # 如果发送的请求是类似上面分析出的url就进行处理
    if url in flow.request.url:
        # 这两句话是一样的,都是返回返回的结果
        # print(flow.response.text)  # print(flow.response.get_text()
        text = flow.response.text
        # 把str转换为字典处理
        data = json.loads(text)
        books = data.get('data')
        for book in books:
            # 在cmd中用颜色输出一下书的信息
            ctx.log.warn(str(book))
            data = {
                'title': book.get('title'),
                'author': book.get('author'),
                'cover': book.get('cover'),
                'tags': book.get('tags')
            }
            # 存入txt中
            save_to_file(data)

 


mitmdump -s 脚本路径/文件名

用上面的命令运行脚本,结果如图

 


注意:每一次都要点“换一换”才能发送请求,如果命令行没有动讲就按回车

第四步获得每本书的内容

结果是失败了。。。

当我接受到一本书一章的内容时,得到json数据,里面的content是加密处理的,说明这个app这方面还是可以的

但是当我爬另外一个app时,却发现它的数据没有加密,这样的话其实就很好爬取了

这次失败了,下次再尝试一下 

 

版权声明:本文为qq_40733911原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40733911/article/details/87921235