项目仓库
- 项目地址: github.com/sunhailin-L…
- 开发者: sunhailin-Leo
项目简介
-
爬虫的核心代码就移步去Github仓库上看吧~
-
项目功能简介:
- 获取中国银行外汇牌价的汇率(本项目模板以港币为Base)
- 获取时间可以自定义(设置起始时间不建议跨度太长)
- 爬虫数据支持存储在MySQL、MongoDB和CSV中(通过cmdline_start_spider的启动命令参数进行控制)
- 更新了增量爬取模式(2018-11-12日)
-
爬取目的:
- 纯属一片好奇心想去预测未来的几天的汇率走向
- 顺便做一做可视化
-
项目技术点:
- Scrapy获取源代码解析数据
* 由于页码是通过JS进行加载的,所以暂时解决办法用selenium无头模式进行渲染(后期改为用Scrapy-splash)
复制代码
讲讲数据方面
- 以下数据使用的是 2018-01-01 ~ 2018-11-06日的汇率数据(去重之后约48000条数据)
- 数据探索:
- 中行网站上有四种不同的牌价(现汇买入价,现钞买入价,现汇卖出价,现钞卖出价,中行折算价), 中行折算价暂时先不考虑。
- 现汇买入价——是指账户内的外汇通过结汇兑换成人民币的银行结算价。
- 现钞买入价——是指外币现钞结汇,兑换成人民币的银行结算价。
- 现汇卖出价——是指购买外汇对外付款,人民币兑换外币的银行结算价。
- 现钞卖出价——是指购买外币现钞,人民币兑换外币的银行结算价。
- 要考虑去香港买买买的话就可以用现汇卖出价或者现钞卖出价进行数据可视化和数据预测了。
- 本人选择了现汇卖出价, 接下来的数据都是用现汇卖出价进行可视化并统计分析了(其他类型只是换了列数据而已)
- 中行网站上有四种不同的牌价(现汇买入价,现钞买入价,现汇卖出价,现钞卖出价,中行折算价), 中行折算价暂时先不考虑。
- 数据清洗:
-
在页面上看或者从抓取回来的数据很容易看出会有部分重复数据(不知道中行为啥允许重复数据的出现)
-
清洗手段:(我选择了后者,在不给数据库施压的情况下,后者相对比较仁慈)
- MySQL:SELECT DISTINCT语句
- Pandas: Dataframe.drop_duplicates(根据发布时间保留第一个值就ok了)
-
代码大致如下:
header = ['现汇买入价', '现钞买入价', '现汇卖出价', '现钞卖出价', '中行折算价', '查询时间'] # dataframe配置 # 显示所有列 pd.set_option('display.max_columns', None) # 显示所有行 # pd.
-