每日App用户反馈爬取及定时发送邮件
大约 2 分钟
每日App用户反馈爬取及定时发送邮件
本文构建了一个定时爬取公司后台用户反馈的爬虫
应用场景
人都是有惰性的,主动登录用户反馈后台去查看用户问题并去解决,比较麻烦,很容易忽略这份工作。每天以邮件的形式发送到相应开发人员及管理人员邮箱,则便于知晓、处理及解决用户问题。
用户反馈爬虫脚本爬取步骤
1、登录
通过分析代理找到登录时的表单请求
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元素。如下图: 参数配置如下:
// 具体格式可以查看源码及代理工具查看
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/export
拼装参数:需要跟请求bug列表的参数一致,否则内容会不一样 将excel先保存到本地,然后excel发送
最后发送邮件即可,详情见源码
5. 使用crontab构建定时任务
每天早上 9:45发送前一天的android app用户反馈
邮件截图如下:
源码地址
https://gitee.com/leixun/BugDailyMail
未解决问题
邮件发送时抄送用户收不到邮件,必须是收件人,还需要抽空捣鼓捣鼓
脚本使用方式
- run.py中工作目录需要替换为本地目录
- username password 替换为公司域账户
- 发送邮箱替换为自己的邮箱
- 邮件接受地址替换 最后直接运行:python run.py