Microsoft Forms自动获取统计数据csv

背景描述:
公司现在上了QC LPA项目,LPA项目的核心应该是实现分层审核机制,目的是要提高QC的合格率。作为LPA项目的一部分,他们也设置了一套系统,流程如下:


 
数据采集:
需要从生产一线获取生产的第一手数据,这里他们采用了Forms作为载体,进行数据收集。
 


数据分析:
这方面基于采集的数据进行数据筛选,获得有用的数据并进行归纳整理。
后续跟踪:
基于数据分析,对于发现的不符合项目进行整改,提供工作流方便追踪。
整个系统设计方面,后端采用了MVC+bootstrap架构,前端提供数据来源。现在来了问题,用户如果需要获取Forms的统计数据,需要手工的从Forms上面下载。这就意味着需要安排专人从Forms上面获取数据,当然,这样的方式肯定不方便。
解决办法:
基于前端的数据收集获取问题,我这里推荐了使用Python selenium的方式,隐形获取csv并上传到数据库服务器,方法如下:
1.    配置python selenium运行环境,这里以chrome浏览器为例
2.     下载csv相关脚本如下:
import datetime
from selenium import webdriver
from time import sleep
from selenium.webdriver.support.wait import WebDriverWait
import _mssql
import pymssql
import decimal
import os,shutil

if __name__=='__main__':

    browser=webdriver.Chrome()
    web_link='https://forms.office.com/'
    browser.get(web_link)
    browser.maximize_window()
    WebDriverWait(browser,30,0.2).until(lambda x:x.find_element_by_xpath("/html/body/div[2]/div/div/header/div/div/div[2]/div[2]/div/div"))
    sleep(10)
    browser.switch_to.default_content()
    browser.find_element_by_xpath('/html/body/div[2]/div/div/header/div/div/div[2]/div[2]/div/div').click()
    sleep(10)
    browser.switch_to_frame('hrdIframe')
    browser.find_element_by_xpath('/html/body/div[2]/div/main/div[2]/div[2]/div/input').send_keys('***@***.com')
    sleep(3)
    browser.find_element_by_xpath('/html/body/div[2]/div/main/div[2]/div[4]/input').click()
    sleep(10)
    browser.find_element_by_name('passwd').send_keys('******')
    sleep(3)
    browser.find_element_by_xpath('/html/body/div/form[1]/div/div/div[1]/div[2]/div[2]/div/div[2]/div/div[3]/div[2]/div/div/div/div/input').click()
    sleep(3)
    browser.find_element_by_xpath('/html/body/div/form/div[1]/div/div[1]/div[2]/div/div[2]/div/div[3]/div[2]/div/div/div[1]/input').click()
    sleep(10)
    browser.find_element_by_xpath('/html/body/div[2]/div/div/div[3]/div[1]/div/button/div[1]/i').click()
    sleep(3)
    browser.find_element_by_xpath('/html/body/div[2]/div/div/div[3]/div/div[1]/div[2]/div[2]/div[2]/button[1]/div/div[2]').click()
    sleep(3)
    browser.find_element_by_xpath('/html/body/div[2]/div/div[1]/div/div/div[4]/div/div/button/div').click()
    sleep(3)
    browser.find_element_by_xpath('/html/body/div[2]/div/div[2]/div[3]/div[8]/div/div[2]/div').click()
    sleep(10)
    browser.find_element_by_xpath('/html/body/div[2]/div/div[2]/div[3]/div[9]/div/div/div/div[3]/div[2]/div/button').click()
    sleep(20)
    print('finished')
browser.quit()

3.    将下载的csv文件数据上传到指定数据库,基本上整个获取数据的流程完成。
总结:
1.    在没有数据API接口的情况下,可以通过Selenium获取数据。
2.    Forms如果提供类似ODBC的数据接口或者API,操作起来会非常方便,也许是处于商业目的吧,或者根本没想到会有这样的应用。
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值