本篇图文为大家介绍,如何利用 Python 爬取红岭创投网站的日投资发标记录,并把这些数据存储在 Mysql 数据库中,之后将其进行可视化分析的过程。
第一步:爬取数据
通过 selenium + Firefox 的无头模式将需要的数据爬取出来,代码实现不在赘述,详细步骤可查看我的上一篇图文(
如何利用Python爬取网易新闻
), 由于 selenium3.11.0 版本已经停止对 phantomjs 的支持,现在可以使用 chrome 和 firefox 的无头模式实现该功能。
打开无头模式:
一个疑问:
使用 ubuntu 的 crontab 定时任务运行此爬虫脚本时,如果不打开无头模式,报错如下:
没能理解这个报错的原因,希望与大家一起讨论。
第二步:存储数据
数据库这次选择了 Mysql,首先需要建立自己的数据库,建立相应表格,这里推荐使用 Navicat,能够将数据库操作图形化。Navicat 需要做一些配置,网上有大量教程,建表时需要注意类型,选择正确的类型在后续使用时会减少很多麻烦,例如:
和类型
适用场景:
字符串列的最大长度比平均长度大很多
字符串列很少被更新
使用了多字节字符集存储字符串(如utf8中的中文和英文)
适用场景:
存储长度近似的值(md5值,如密码)
存储短字符串
存储经常被更新的字符串列
日期类型
类型:
以yyyy-MM-dd HH:mm:ss格式显示,占用4个字节
时间范围:1970-1-1 到 2038-01-19
类型:
以yyyy-MM-dd HH:mm:ss格式显示,占用8个字节
时间范围:1000-1-1 00:00:00至9999-12-31 23:59:59
插入数据
此时,数据已经静悄悄的待在数据库中了。
img01
第三步:利用echarts将数据可视化作图
针对这次的目标,折线图是最好的展现数据方式。数据库原始数据需要做出一定处理,根据具体用途处理就好。
:横轴数据
:纵轴数据
:添加数据作图
:设置纵轴刻度范围
:设置刻度精度
:主题颜色
:生成文件
img02
img03
第四步:crontab定时任务
观察了红岭创投网站一段时间后,发现只能显示近十分钟左右的即时数据,不可能每过几分钟手动点击程序运行,团队的小伙伴向我推荐了一个非常好用的指令, 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表,并且在后台运行,不会打扰到我们的学习和工作。
打开crontab:
界面如下(通过vim打开)
img04
基本格式
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
通常需要将 python 环境绝对路径,程序绝对路径写入命令,保证能正常运行。如果 没有运行,大概率的原因就在此,图中倒数第四行黄色部分就是运行爬虫的指令,最后部分是输出日志,将每一次运行的结果写进日志文件,以便检查运行情况。
第五步:smtplib 发送邮件
每天处理数据做出折线图后,将图片发送给团队老大, 是不错的选择,结合就能每天自动运行,成就感超强。
在邮件中添加附件:
到这里,任务就全部搞定了。怎么样,感兴趣的同学也可以按照思路来玩一下。今天就到这里吧,See You!
本篇图文由团队 余江银 同学提供,他的 CSDN Blog 地址为:
https://blog.csdn.net/YYYYYJY
经过8年多的发展,LSGO软件技术团队在地理信息系统、数据统计分析、计算机视觉领域积累了丰富的研发经验,也建立了人才培养的完备体系。
欢迎对算法设计与实现感兴趣的同学加入,与我们共同成长进步。
领取专属 10元无门槛券
私享最新 技术干货