python爬取多页表格数据到excel_小白python学习笔记-EXCEL数据爬取

本文介绍了如何使用Python的xlrd模块从Excel文件中读取数据,并结合其他模块将数据处理后通过微信发送,适用于日常数据汇总和汇报场景。
摘要由CSDN通过智能技术生成

f275ebcaa75e6c8bae582d3c4b215d91.png

日常工作中,我们接触最多的就是各种excel报表,各个口的数据汇总、数据报表用的几乎都是EXCEL文件。刚好我们营运的同事每天都有个经营汇总日报需要从excel文件里提取数据,再通过微信汇报给店总。因为功能涉及的比较简单,以此来简单说说怎么从excel里爬取数据。

首先excel数据的读取,我们要用到xlrd模块,xlrd的功能是非常强大的,具体涉及到的内容大家可以去他的官方网站查阅使用文档:xlrd documentation ,下面开始写代码,写得比较糙,大家看看就好, 。

import xlrd     #导入xlrd模块
import time     #导入系统时间模块

T0 = time.strftime('%Y',time.localtime())+'年'+time.strftime("%m",time.localtime())+'月'+time.strftime("%d",time.localtime())+'日'
#关于系统时间的模块简单说一下:%Y是年,%m是月,%d,剩下的内容较多,请大家参考下文。
time.strftime('%w',time.localtime()) #输出今天是星期几 

python中时间日期格式化符号:

  • %y 两位数的年份表示(00-99)
  • %Y 四位数的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月内中的一天(0-31)
  • %H 24小时制小时数(0-23)
  • %I 12小时制小时数(01-12)
  • %M 分钟数(00-59)
  • %S 秒(00-59)
  • %a 本地简化星期名称
  • %A 本地完整星期名称
  • %b 本地简化的月份名称
  • %B 本地完整的月份名称
  • %c 本地相应的日期表示和时间表示
  • %j 年内的一天(001-366)
  • %p 本地A.M.或P.M.的等价符
  • %U 一年中的星期数(00-53)星期天为星期的开始
  • %w 星期(0-6),星期天为星期的开始
  • %W 一年中的星期数(00-53)星期一为星期的开始
  • %x 本地相应的日期表示
  • %X 本地相应的时间表示
  • %Z 当前时区的名称
  • %% %号本身
    下面开始打开文件:
# 首先打开excle
xl = xlrd.open_workbook(r'd:day report每日数据分析.xlsx')
# 通过索引获取工作表,这里就一个sheet,所以打开第一个
table = xl.sheets()[0]

# 获取一共多少行
rows = table.nrows
print(rows)
# 获取最新一行的内容(其实就是最下面一行),记住:excel的索引是从0开始!!!
T1 = table.cell(rows-1,1).value
#从最新即最下一行开始计算
a1 = table.cell(rows-1,2).value
#下面把a1的值小数取2位,然后转换成字符串,存入变量kl1,这是一个客流数据
kl1=str("%.2f" % a1) 

a2 = table.cell(rows-8,2).value
#同上,这个数据是前期客流量
kl2=str("%.2f" % a2)

a3 = table.cell(rows-1,3).value *100  #客流环比值百分比,所以乘以100
klhb=str("%.2f" % a3)

a4 = table.cell(rows-1,4).value
#总客流数据
zkl=str("%.2f" % a4)

a5 = table.cell(rows-1,10).value
#销售数据1
xs1=str("%.2f" % a5)

a6 = table.cell(rows-8,10).value
#销售数据2
xs2=str("%.2f" % a6)

a7 = table.cell(rows-1,11).value *100  #销售环比值百分比,所以乘以100
#销售环比数据
xshb=str("%.2f" % a7)

a8 = table.cell(rows-1,12).value
#总销售数据
zxs=str("%.2f" % a8)
#以下内容是一些文字内容的爬取,做一个print是为了检查爬取的内容是否正确,后面使用时再注释掉
a9 = table.cell(rows-1,13).value
sh='%d' %a9
#print(sh)

shmc10 = table.cell(rows-1,14).value
#print(shmc10)
 
reason = table.cell(rows-1,15).value
#print(reason)

solutions = table.cell(rows-1,16).value
#print(solutions)

sh2 = table.cell(rows-1,17).value
#print(sh2)

huodong = table.cell(rows-1,18).value
#print(huodong) 

下面是另一个模块的使用,主要是获取一些天气温度信息,看过我前面内容的应该就知道,这个是我发送客流时用的天气信息代码:

import requests
url = "https://restapi.amap.com/v3/weather/weatherInfo?city=450300&key=1234567???"
weather_data = requests.get(url)
data=eval(weather_data.text)
a = data.get('lives')
print('天气:'+a[0].get('weather')+','+'温度:'+a[0].get('temperature')+'°')
A1 = '天气:'+a[0].get('weather')+','+'温度:'+a[0].get('temperature')+'°'

最后检查一下所有输出信息是否正确:

print('尊敬的领导:【xxxx广场】'+T0+'经营情况简报('+T1+','+A1+')'+'n'+
      '一、截止今日项目招商率xx%,开业率xx%,开业总品牌数:xx家,开业总面积:xxxxx㎡;'+'n'+
      '二、项目总客流:'+kl1+'万人次,上周同期:'+kl2+'万人次,环比:'+klhb+'%,月累计'+zkl+'万人次;'+'n'+
      '三、项目总销售额:'+xs1+'万元,上周同期:'+xs2+'万元,环比:'+xshb+'%,月累计'+zxs+'万元;'+'n'+
      '四、今日零单商户:'+sh+'家:'+shmc10+'n'+
      '原因:'+reason+'n'+
      '解决措施:'+solutions+'n'+
      '五、今日未复工商户:'+sh2+'n'+
      '六、今日执行的线上推广活动情况:'+huodong)

当然,以上的所有都是为了输出到微信,然后我就继续沿用之前的客流发送代码:

#复制以上输出信息
import pyperclip
dd=pyperclip.paste()
pyperclip.copy('尊敬的领导:【xxxx场】'+T0+'经营情况简报(星期'+T1+','+A1+')'+'n'+
      '一、截止今日项目招商率xxx%,开业率xxxx%,开业总品牌数:xxx家,开业总面积:xxxx㎡;'+'n'+
      '二、项目总客流:'+kl1+'万人次,上周同期:'+kl2+'万人次,环比:'+klhb+'%,月累计'+zkl+'万人次;'+'n'+
      '三、项目总销售额:'+xs1+'万元,上周同期:'+xs2+'万元,环比:'+xshb+'%,月累计'+zxs+'万元;'+'n'+
      '四、今日零单商户:'+sh+'家:'+shmc10+'n'+
      '原因:'+reason+'n'+
      '解决措施:'+solutions+'n'+
      '五、今日未复工商户:'+sh2+'n'+
      '六、今日执行的线上推广活动情况:'+huodong)

应营运同事的需求,这里只是把输出内容存入剪贴板,这样他们再次发送前检查一遍,或者发给多位同事及领导~o(* ̄︶ ̄*)o

【为什么学爬虫?】        1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到!        2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是:网络请求:模拟浏览器的行为从网上抓取数据数据解析:将请求下来的数据进行过滤,提取我们想要的数据数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是:爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求!【课程服务】 专属付费社群+定期答疑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值