爬取网易财经中股票的历史交易数据

需求分析

  • 得到股票代码

    股票代码的信息是在东方财富网中获取(http://quote.eastmoney.com/stocklist.html)

  • 得到股票的历史交易记录

    股票的历史交易记录是可以在网易财经中直接下载excel表的,地址(http://quotes.money.163.com/trade/lsjysj_603088.html#06f01)这是某一股票的历史交易记录详情,我们可以在页面中找到下载的链接地址。

代码撸起来

  • 首先我们需要在东方财富网中获取到股票的代码,在(http://quote.eastmoney.com/stocklist.html)页面中我们可以看到股票代码,我们可以利用xpath结合正则表达式将这些股票代码获取到

  • 获取股票代码列表的代码:

    class StockCode(object):
    def __init__(self):self.start_url = "http://quote.eastmoney.com/stocklist.html#sh"self.headers = {"User-Agent": ":Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"}def parse_url(self):# 发起请求,获取响应response = requests.get(self.start_url, headers=self.headers)if response.status_code == 200:return etree.HTML(response.content)def get_code_list(self, response):# 得到股票代码的列表node_list = response.xpath('//*[@id="quotesearch"]/ul[1]/li')code_list = []for node in node_list:try:code = re.match(r'.*?\((\d+)\)', etree.tostring(node).decode()).group(1)print codecode_list.append(code)except:continuereturn code_listdef run(self):html = self.parse_url()return self.get_code_list(html)
  • 分析网易财经中历史交易记录下载页面获取到下载的链接。

    • 使用谷歌浏览器检查工具,切换到network,在我们在点击下载的时候可以得到请求接口:

    • 上图中,我们分析到,在点击下载时的url地址,需要传递的参数就是我们的股票代码和下载的起始时间和结束的时间,以及fields后面跟着的一堆参数值,在这里需要注意的是请求的url中股票代码前还多了一位是0。那么我们在爬取的时候,就需要理由xpath来提取页面中要下载数据的起始时间和结束时间,然后将在东方财富网中获取到的股票代码和url进行拼接,拼接成我们想要请求的下载连接。
  • 下载历史交易记录的代码

    class Download_HistoryStock(object):def __init__(self, code):self.code = codeself.start_url = "http://quotes.money.163.com/trade/lsjysj_" + self.code + ".html"print self.start_urlself.headers = {"User-Agent": ":Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"}def parse_url(self):response = requests.get(self.start_url)print response.status_codeif response.status_code == 200:return etree.HTML(response.content)return Falsedef get_date(self, response):# 得到开始和结束的日期start_date = ''.join(response.xpath('//input[@name="date_start_type"]/@value')[0].split('-'))end_date = ''.join(response.xpath('//input[@name="date_end_type"]/@value')[0].split('-'))return start_date,end_datedef download(self, start_date, end_date):download_url = "http://quotes.money.163.com/service/chddata.html?code=0"+self.code+"&start="+start_date+"&end="+end_date+"&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP"data = requests.get(download_url)f = open(self.code + '.csv', 'wb')for chunk in data.iter_content(chunk_size=10000):if chunk:f.write(chunk)print '股票---',self.code,'历史数据正在下载'def run(self):try:html = self.parse_url()start_date,end_date = self.get_date(html)self.download(start_date, end_date)except Exception as e:print e
    
  • 运行项目,开始下载数据:

    if __name__ == '__main__':
    code = StockCode()
    code_list = code.run()for temp_code in code_list:time.sleep(1)download = Download_HistoryStock(temp_code)download.run()
  • 下载数据的时候发现,获取到的股票代码2-5开头的都下载不到历史的交易记录,但是从6开始,是可以下载了,下面是下载来的数据效果:

爬取网易财经中股票的历史交易数据相关推荐

  1. python爬取股票信息_利用Python爬取网易上证所有股票数据(代码

    利用Python爬取网易上证所有股票数据(代码 发布时间:2018-04-14 17:30, 浏览次数:1261 , 标签: Python import urllib.request import r ...

  2. python爬取股票大单历史记录_利用bs4爬取股票的历史交易数据

    听起来,爬取股票的所有历史交易数据跟高大上,有木有? 不过写这个爬虫的时候,发现基于网易财经的股票历史数据的爬取其实挺简单,最后再写到txt文档里(暂时写txt,以后会写csv的.可以在用机器学习干一 ...

  3. Python 爬取新浪财经部分股票的历史交易数据

    本文仅供学习交流,如有错误纰漏,还请谅解,欢迎大家一起来学习探讨! 参考资料(感谢!) 爬取准备 爬取思路 模块1:网页表格数据爬取 模块2:添加输出数据 源代码(近期可能还要修改...) 爬取近一个 ...

  4. 爬取网易财经全部A股上市公司年报

    首先要找到所有A股上市公司的股票代码,将东方财富网列表中所有的股票的代码(6位数字号)取下来 东方财富网股票代码列表: http://quote.eastmoney.com/stocklist.htm ...

  5. 利用Python爬取网易上证所有股票数据(代码

    import urllib.request import re##def downback(a,b,c): ## '''' ## a:已经下载的数据块 ## b:数据块的大小 ## c:远程文件的大小 ...

  6. 爬取网易某只股票2017-01到2018-01的数据

    import urllib.request import re import urllib import csv from selenium import webdriver from lxml im ...

  7. 爬虫:爬取股票历史交易数据

    爬虫策略制定 1. 从东方财富网中获取(http://quote.eastmoney.com/stocklist.html)股票代码 2. 从网易财经中可以直接下载csv格式文件,地址类似于http: ...

  8. 使用python在网易爬取股票信息,制作股票分析系统(简易版)

    这是使用python3.5+BeautifulSoup来爬取网易的股票信息, 使用这些数据来画出蜡烛图和折线图.效果如下图所示: 这个实现出来还是很简单的.这是大二做的,做的不怎么好,只是练练手. 代 ...

  9. 爬取网易buff CSGO饰品数据 - 优化篇

    文章目录 思路回顾 配置优化 RawConfigParser 处理配置列表 价格取舍 价格过滤 饰品类别限定 内部实现优化:结合价格筛选和饰品类别筛选 其他限定? 命名 The End 继上周末搞了c ...

最新文章

  1. CF5A Chat Server's Outgoing Traffic(字符串模拟,find函数的应用)难度⭐
  2. 交换排序 —— 快速排序
  3. c语言编程 新浪博客,[c语言编程]经典编程
  4. 矩阵迹的性质_矩阵(含逆)的迹、行列式关于矩阵自身的导数计算与Maple验证...
  5. linux域文件夹权限设置密码,如何配置Linux 文件权限(经典详细版本: rwxst)
  6. 并发编程:进程,线程,协程,异步
  7. Linux环境下Python的安装过程
  8. 利用计算机管理分区,win7增加磁盘分区教学 利用磁盘管理增加分区
  9. 易信七夕调查 八成情侣玩转社交软件
  10. JVM学习总结四——内存分配策略
  11. java使用iframe简单登录界面_Layui-admin-iframe通过页面链接直接在iframe内打开一个新的页面,实现单页面的效果...
  12. 汽车零配件行业MES系统,你了解多少?
  13. 图像增强论文Range Scaling Global U-Net for Perceptual Image Enhancement on Mobile Devices阅读笔记
  14. 图片一句话木马简单制作方法
  15. MySQL常用操作指令大全
  16. hdu 4484 Hailstone HOTPO
  17. 联想小新24/27寸一体机 酷睿版2022款评测
  18. Android工作经验三年总结。(零基础自学Android)
  19. 【JVM】垃圾回收机制及算法
  20. 声学问题matlab,Matlab声学仿真摘要+结论(最新整理)

热门文章

  1. 计算机控制面板的作用,什么是控制面板;它有什么作用?
  2. python中if条件语句的代码实例
  3. (申请加精)你所不知道的奶粉秘密(2)------转自天涯
  4. 超过4G如何制作NTFS格式WINPE?
  5. 自有App小程序第三方微信授权登录的实现
  6. [机器学习] 模型融合GBDT(xgb/lgbm/rf)+LR 的原理及实践
  7. 【好记性不如烂笔头】synchronized是怎么做到同步的?使用场景是什么?简述下原理。
  8. 使用360极速(360Chrome双核)浏览器,360邮件通初始化失败的解决方法
  9. 个人公众号,以后文章会在公众号首发
  10. 魔都记--来美团点评公司快两年的总结