这回咱们抓取的宗旨是网易财经的股票板块,咱们起初剖析一下链接。依据链接的花式,咱们拼接好股票代码、年份和季度:
探讨到收集央浼能够会让步,咱们正在央浼让步时配置众次从新央浼(最众8次),假使众次央浼后还是让步,则将央浼的合系实质存储到error_logs中:
获取到页面实质后,咱们先来剖析页面组织(图1),咱们须要的数据大抵是以如此的花式存正在的:tr标签示意股票某一天的行情,tr标签下的td标签示意现在行情的周密数据:
每次解析页面时,咱们都市从数据库中取浮现在股票一经存正在的数据,用于判定待插入数据是否一经存正在数据库中。如此做能够实时补所有据,而且避免数据反复插入。
因为股票数据是频仍蜕变的,这就请求咱们依时对数据实行更新,这里咱们编写一个依时器来完成依时更新数据的性能:
这里咱们运用MongoDB来存储数据,MongoDB行为一个面向文档存储的数据库,操作起来相对照较方便和容易。正在编写代码之前,咱们须要前辈行安设MongoDB安设教程,别的python操作MongoDB须要用到pymongo库,夂箢行下输入pip install pymongo安设即可。
安设告竣后,咱们着手编写MongoDB合系的代码,新筑DBManager类用于处理数据库合系操作:
正在DBManager类中,咱们最常用到的有add_tk_item举措,这个举措会按照tk_code(股票代码),将最新的数据插入到price_list中。
以及find_by_id举措,这个举措会按照tk_code盘问相应的股票音信。当咱们须要对Cursor实行长韶华轮回遍历时,该当将no_cursor_timeout配置为true。
为了提拔呼应速率,咱们运用Redis对数据实行缓存,redis行为一个key-value存储体例,具有极高的职能。跟之前相通咱们须要先安设RedisRedis安设教程,然后为python安设redis库,运用pip install redis夂箢。
update_data举措用于将MongoDB的数据同步到Redis,每次体例实践完爬取生意后都市挪用该举措:
因为咱们惟有一个方便的数据接口,因而遴选运用Nginx,Nginx 行为一个高职能的 Web 和反向署理任事器,具有简捷高效,占用资源少等好处。探讨到许众开垦者民俗正在Windows下调试代码,咱们先正在Windows体例中安设Nginxwindows下安设nginx(Windows下Nginx是以利用的花样运转的,这能够也是许众人不高兴正在Windows下运转Nginx的来历)。
摆设好Nginx后咱们着手编写数据接口,start_api_tkdata举措会开启一个监听,用于呼应Nginx的央浼:
myapp举措每次收到央浼时,都市对央浼的花式和参数实行校验,校验通事后则从Redis中获取数据以json花式返回。
编写完数据接口后,咱们正在本机启动Nginx,正在浏览器中输入,能够看到如下结果(图2):
到此为止,咱们的股票爬虫和数据接口就一经告竣了,咱们还能够正在现有的根基上做少少优化,比如:
1.爬取数据时运用众线.增加更众的数据接口,增加均线、Macd、Boll等目标数据,这些数据能够由收盘价企图取得。
3.增加数据检测和日记处理模块,假使你企图将这套体例用正在临盆境况中,这些模块是必必要有的。
加入新手交流群:每天早盘分析、币种行情分析
添加助理微信,一对一专业指导:chengqing930520
上一篇:新浪财经频道加入新手交流群:每天早盘分析、币种行情分析,添加助理微信
一对一专业指导:chengqing930520
最新资讯