每日App用户反馈爬取及定时发送邮件

东方盛慧科技大约 2 分钟爬虫爬虫

每日App用户反馈爬取及定时发送邮件

本文构建了一个定时爬取公司后台用户反馈的爬虫

应用场景

人都是有惰性的,主动登录用户反馈后台去查看用户问题并去解决,比较麻烦,很容易忽略这份工作。每天以邮件的形式发送到相应开发人员及管理人员邮箱,则便于知晓、处理及解决用户问题。

用户反馈爬虫脚本爬取步骤

1、登录

通过分析代理找到登录时的表单请求 dd

python请求代码如下:

yield scrapy.FormRequest.from_response(
            response,
            formdata={
                "username": ####,
                "password": ####,
                "It": "_c35F4FAF6-1632-57F1-D4E1-6E434CA73FBA_k8014A5B9-4C6B-693B-7E34-D16ECCBA8C65",
                "_eventId": "submit",
                "submit": "登录"
            },
            callback=self.jumpToBugPage)
2、请求bug列表

结合网页开发工具和代理可以发现,bug列表显示的是一个http请求直接返回的table元素。如下图: dd 参数配置如下:

// 具体格式可以查看源码及代理工具查看
bugParam = {
        "page":"1",
        "pageSize":"80",
        "appId":"",
        "appName":"",
        "userName":"",
        "content":"",
        "platform":"1",
        "replyStatus":"-1",
        "startTime":"",
        "endTime":""
    }
3、网页模板构建

为了便于每天接受到的邮件查看,咱们可以直接将这个表格展示到邮箱,因此可以采用直接发送html的方式发送到邮箱。 由于直接返回的table元素使用了大量的css样式,因此需要将其css样式拷贝出来放到html模板中,且对表格宽高做单独限制,否则显示会很奇怪。 模板如下

<head>
    <style type="text/css">
    .p-thumbnail {display: inline-block;}
    .text-left {text-align: left;}
    .p-thumbnail__item{width: 50px;}
    </style>
    <link rel="stylesheet" type="text/css" href="http://static.koocdn.com/framework/css/global.17622.css">
    <link rel="stylesheet" type="text/css" href="http://static.koocdn.com/lib/bootstrap/css/bootstrap.15753.css">
    <link rel="stylesheet" type="text/css" href="http://static.koocdn.com/project/cms-mix/1.x/common/bootstrap-reset/bootstrap-reset.16583.css">
    <title>Android - 用户反馈日报</title>
</head>
4. 下载excel文件地址

通过代理发现 请求地址:http://manageapp.koolearn.com/yd/app/feedback/exportopen in new window

拼装参数:需要跟请求bug列表的参数一致,否则内容会不一样 将excel先保存到本地,然后excel发送

最后发送邮件即可,详情见源码

5. 使用crontab构建定时任务

每天早上 9:45发送前一天的android app用户反馈 dd

邮件截图如下:

dd
dd

源码地址

https://gitee.com/leixun/BugDailyMailopen in new window

未解决问题

邮件发送时抄送用户收不到邮件,必须是收件人,还需要抽空捣鼓捣鼓

脚本使用方式

  1. run.py中工作目录需要替换为本地目录
  2. username password 替换为公司域账户
  3. 发送邮箱替换为自己的邮箱
  4. 邮件接受地址替换 最后直接运行:python run.pyopen in new window
上次编辑于:
贡献者: 雷勋