得到APP结合mitmproxy

mitmdump -s ******.py

# 抓取7个信息:课程名:name、课程简介:intro、讲师姓名:lecturer_name、讲师职业:lecturer_title、售价:price、课时数:phase_num、学习人数:learn_user_count
import json
import os
import sqlite3
from mitmproxy import ctx
# 定义SQList数据库名
db_path='igetget.sqlite'
# 如果数据库文件不存在,可创建该数据库,并命名为course_list的表
if not os.path.exists(db_path):
    conn=sqlite3.connect(db_path)
    # 获取sqlite3.Cursor对象
    c=conn.cursor()
    # 创建person表
    c.execute("""CREATE TABLE course_list
    (
    name CHAR(50),
    intro CHAR(50),
    lecturer_name CHAR(100),
    lecturer_title CHAR(50),
    price INT,
    phase_num INT,
    learn_user_count INT
    );
    """)
    conn.commit()
    conn.close()
    print('创建数据库成功')
# 打开数据库
conn=sqlite3.connect(db_path)
c=conn.cursor()
# 获取响应的mitmdump接口
def response(flow):
    # 定义要处理的URL的前缀
    url="https://entree-ali.igetget.com/label/v2/algo/product"
    # 如果前缀符合,处理这个URL
    if flow.request.url.startswith(url):
        # 获取响应文本
        text=flow.response.text
        # 将响应文本转换为JSON对象
        data=json.loads(text)
        # 获取包含课程列表的对象
        courses=data.get('c').get('product_list')
        # 对课程进行迭代
        for course in courses:
            # 将要提取的信息保存到一个列表里
            data=[
                course.get('name'),
                course.get('intro'),
                course.get('lecturer_name'),
                course.get('lecturer_title'),
                course.get('price'),
                course.get('phase_num'),
                course.get('learn_user_count')
                ]
            # 在控制台输出提取出的数据
            ctx.log.info(str(data))
            # 将数据插入course_list表
            c.execute('INSERT INTO course_list VALUES(?,?,?,?,?,?,?)',data)
            conn.commit()

mitmdump可以与Python结合编写实时的爬虫,这种方式更适合抓取App的数据,而且mitmweb工具可以实现可视化监听请求...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值