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

 

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

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

关于mitmproxy可以看这篇博客:https://blog.youkuaiyun.com/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时,却发现它的数据没有加密,这样的话其实就很好爬取了

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值