利用Python对天猫店铺销售进行分析.下

Python014

利用Python对天猫店铺销售进行分析.下,第1张

<p>相隔两个月,爬虫任务完成了。上次说道( 利用Python对天猫店铺销售进行分析.上 ),后续要完成四个功能,包括:</p>

<p>在上一个任务完成之后,任务的最后是通过crontab设置每天8点,13点,18点,23点,定时采集任务,而该篇内容的目的就是在每天23点最后一次任务完成之后,对该天采集的数据进行处理,时间设定在23点30分,也是采用crontab来定时开启。</p>

<p>这个只要通过SQLite将每天收集的数据重新提取出来,由于我们的当天的销售数据是收集在SCOUNT表格中,而数据的列名称是依据时间来命名,为了获得当天四个时间点采集的销售数据,需要先获得列名称。</p>

<p>在SQLite里面,可以通过 Pragma 获得所有的列名称信息,Pragma有两个功能,包括更改内部操作以及获得表格固有数据,通过其中的table_info,既可以获得列名称信息,所有列名称信息获得后,通过 list comprehensions (这个实在不知道怎么翻译),可以获得今天的新生成的4个销售数据列:</p>

<p>然后就是获得进行的销售数据,由于每个SKU一天将采集四次数据,并且收集的SKU有下架的可能,SKU列表中的不是每个SKU都有可能被采集,所以对采集出来需要的数据需要 dropna ,并且需要将SKU信息表格和销售数据表格通过 merge 函数合并,形成我们需要的data。每个SKU在每个时刻采集的数据会出现波动,销量数据并不是一个连续增长的过程,因此为了求得当天的销量,可取一天中最大数和最小数差值。</p>

<p>生成销售额的方法类似,就不在这里列出。</p>

<p>生成PDF,这是当时的一个设想,后来参考这篇 教程 做出来了( Practical Business Python 是个好网站,推荐),原理是通过DataFrame转化为HTML,再将HTML转化为PDF。但是写邮件模块的时候,发现邮件可以内嵌HTML,因此就没有必要专门生成PDF,再通过邮件以附件的形式发送了。但在这里,还是先梳理下整个流程:</p>

<p>采用 Jinja2 生成PDF,首先需要生成一个模板,模板里面需设定好HTML的样式,这是参考教程写出的一个HTML的样式:</p>

<p>完成后,再将DataFrame通过 to_html 函数转化为HTML并填入到样式中。</p>

<p>最后生成PDF,只加入一个模块喝一句话就可以了。 weasyprint 这个模块是专门用于将HTML或者CSS转化为PDF:</p>

<p>python里面有专门的发送邮件模块, email 模块。邮件的模块包括两部分,一部分是邮件正文模块,一部分邮件发送模块:</p>

<p>邮件正文模块,通过MIMEText完成。在email模块里面有专门的( MIME , Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)模块,用来生成对应的邮件正文类型。在这里先采用文本模块MIMEText做个示范:</p>

<p>然后就是发送邮件了,需要经过 stmplib 模块,下面详细讲讲。发送邮件首先需要设置 smtp (Simple Mail Transfer Protocol,简单邮件传输协议)的地址和端口,然后部分邮箱需要采用TTS加密协议的时候,则需要使用starttts()函数。然后对应的是登陆的用户名的密码,再将上面编写的msg发出去,最后quit即可。</p>

<p>总结下,之前设定的任务大体完成了。但是还是有很多可以深化的内容,例如前面采用DataFrame的时候,没有对数据进行可视化,HTML的模板还可以再美化下,另外假如引入了数据可视化,要怎么将可视化的图片嵌入到邮件中。邮件登陆那部分,部分邮箱没有办法采用这个方法发出(需要再考虑smtp设置)。</p>

<p>上面这些问题,后续会继续以小项目的形式进行研究。后面还可以进行平台之间的销售情况对比等等,总而言之,该项目还是有很大的扩张空间的。嘛,这一次就先这样结束吧。</p>

python 2.6 + selenium-2.53.6 + firefox45.0 + BeautifulSoup3.2.1 或者 python 2.6 + selenium-2.53.6 + phantomjs 2.1.1