# BugDailyMail **Repository Path**: leixun/BugDailyMail ## Basic Information - **Project Name**: BugDailyMail - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-05-23 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README > 本文构建了一个定时爬取公司后台用户反馈的爬虫 # 应用场景 人都是有惰性的,主动登录用户反馈后台去查看用户问题并去解决,比较麻烦,很容易忽略这份工作。每天以邮件的形式发送到相应开发人员及管理人员邮箱,则便于知晓、处理及解决用户问题。 # 用户反馈爬虫脚本爬取步骤 ##### 1、登录 通过分析代理找到登录时的表单请求 ![dd](https://gitee.com/leixun/blog_img/raw/master/login_url.jpeg) 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](https://gitee.com/leixun/blog_img/raw/master/bug_list.jpeg) 参数配置如下: ``` // 具体格式可以查看源码及代理工具查看 bugParam = { "page":"1", "pageSize":"80", "appId":"", "appName":"", "userName":"", "content":"", "platform":"1", "replyStatus":"-1", "startTime":"", "endTime":"" } ``` ##### 3、网页模板构建 为了便于每天接受到的邮件查看,咱们可以直接将这个表格展示到邮箱,因此可以采用直接发送html的方式发送到邮箱。 由于直接返回的table元素使用了大量的css样式,因此需要将其css样式拷贝出来放到html模板中,且对表格宽高做单独限制,否则显示会很奇怪。 模板如下 ``` Android - 用户反馈日报 ``` ##### 4. 下载excel文件地址 通过代理发现 请求地址:http://manageapp.koolearn.com/yd/app/feedback/export 拼装参数:需要跟请求bug列表的参数一致,否则内容会不一样 将excel先保存到本地,然后excel发送 最后发送邮件即可,详情见源码 # 5. 使用crontab构建定时任务 每天早上 9:45发送前一天的android app用户反馈 ![dd](https://gitee.com/leixun/blog_img/raw/master/bug_report.jpeg) 邮件截图如下: ![dd](https://gitee.com/leixun/blog_img/raw/master/bug_mail.jpeg) # 源码地址 https://gitee.com/leixun/BugDailyMail # 未解决问题 邮件发送时抄送用户收不到邮件,必须是收件人,还需要抽空捣鼓捣鼓 # 脚本使用方式 1. run.py中工作目录需要替换为本地目录 2. username password 替换为公司域账户 3. 发送邮箱替换为自己的邮箱 4. 邮件接受地址替换 最后直接运行:python run.py