爬取股票数据

步骤

  • 从东方财富网找到上市公司的股票代码并保存
  • 根据股票代码去百度股市通去查找相关股票的具体信息并保存

代码

#-*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup
import traceback
import re
import xlwt
def getHTMLText(url, code="utf-8"):try:r = requests.get(url)r.raise_for_status()r.encoding = codereturn r.textexcept:traceback.print_exc()return ""
#获取股票列表
def getStockList(lst, stockURL):html = getHTMLText(stockURL,"GB2312")soup = BeautifulSoup(html, 'html.parser') a = soup.find_all('a')for i in a:try:href = i.attrs['href']lst.append(re.findall(r"[s][hz]\d{6}", href)[0])except:continue
#根据股票的代号查找股票的交易信息,并将结果存储到相关文件
def getStockInfo(lst, stockURL):#创建EXCEL文件book=xlwt.Workbook(encoding='utf-8')sheet1=book.add_sheet('sheet1',cell_overwrite_ok=True)heads=['股票名称','最高','最低','今开','昨收','成交额','成交量','净值','折价率']num=0for head in heads:sheet1.write(0,num,head)num=num+1book.save('gupiao.xls')count = 1length=len(lst)#每次将一个查询的数据输出到EXCEl表中for stock in lst:url = stockURL + stock + ".html"html = getHTMLText(url)try:if html=="":continueinfoDict = {}soup = BeautifulSoup(html, 'html.parser')stockInfo = soup.find('div',attrs={'class':'stock-bets'})#查找股票名称if stockInfo:name = stockInfo.find_all(attrs={'class':'bets-name'})[0]infoDict.update({'股票名称': name.text.split()[0]})#寻找所有键和值(最高、最低)keyList = stockInfo.find_all('dt')valueList = stockInfo.find_all('dd')for i in range(len(keyList)):key = keyList[i].textval = valueList[i].textinfoDict[key] = valj=0for i in heads:if i in infoDict:sheet1.write(count,j,infoDict[i])j=j+1else:passbook.save('gupiao.xls')print("\r当前进度: {:.2f}%".format(count*100/length),end="")count=count+1except:print("\r当前进度: {:.2f}%".format(count * 100 / length), end="")count = count + 1continue
if __name__=='__main__':#找寻将数据静态写在html页面的网页stock_list_url = 'http://quote.eastmoney.com/stocklist.html'stock_info_url = 'https://gupiao.baidu.com/stock/'slist=[]getStockList(slist, stock_list_url)getStockInfo(slist, stock_info_url)

运行结果

  • 程序运行后将结果保存在EXCEL中,部分结果截图如下所示

爬虫练习--爬取股票数据相关推荐

  1. 知识星球《玩转股票量化交易》之 爬虫爬取股票数据

    量化交易是一个多技术综合的项目,学习完书籍<Python股票量化交易从入门到实践>我们再次升级学习的内容--知识星球<玩转股票量化交易> 在星球中我们会深入分享包括Python ...

  2. MATLAB爬虫爬取股票数据

    近年来,大数据盛行,有关爬虫的教程层次不穷.那么,爬虫到底是什么呢? 什么是爬虫? 百度百科是这样定义的: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种 ...

  3. 【python爬虫】用python爬取股票数据

    这几天把学习通的 python 爬虫相关课程给刷完了,想去动手也实践一下,重温一下很久之前学过的东西 然后发现实例2(爬淘宝那个).实例3(爬股票那个),好像都有点问题.实例2是淘宝现在的反爬机制好像 ...

  4. Python爬虫教程-Python爬取股票数据过程详解

    这篇文章主要介绍了基于Python爬取股票数据过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基本环境配置 python 3.6 pycha ...

  5. 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)

    最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...

  6. 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价

    最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,在其中用股票范例讲述Python爬虫.数据分析和机器学习的技术,大家看了我的书,不仅能很快用比较热门的案例学好P ...

  7. 金融数据分析(四)爬取股票数据——方法一:requestsbs4re

    案例(二)爬虫预热 项目二:用两种不同的方法爬取股票数据 方法一:requests&bs4&re import requests from bs4 import BeautifulSo ...

  8. 用python爬取股票数据的一点小结

    一.背景 网上对于爬取股票数据有相对完善的教程.不过大部分教程都是只能够爬取一段时间的股票数据,针对某一只股票的历史数据爬取,目前还没有看到比较好的教程.下面对近期学的东西进行一点点小结. 二.股票数 ...

  9. 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)(转载)

    最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...

最新文章

  1. 关闭串口_USART串口通信,DMA方式,一分钟从入门到大师
  2. 测开之路二十:比较v1和v2
  3. 原码、反码、补码的产生、应用以及优缺点有哪些?
  4. 操作系统设计与实现第3版笔记与minix3心得(4)-操作系统发展历史(2)
  5. Linux之Nginx配置解析PHP
  6. 本地项目如何连接码云上的项目
  7. java流与文件——流
  8. python之穿越火线游戏代码_Python 大作业之五子棋游戏(附代码)
  9. EMS批量为用户分配邮箱
  10. php 判断百度浏览器版本,jquery获取浏览器类型和版本号的方法
  11. 理财子公司成长的烦恼
  12. pythonsocket中tcp通信接收不到数据_简单说说Python Socket编程步骤?
  13. WPF 最简方法使用自己定制的 WPF 框架
  14. 基于stm32的太阳跟踪装置设计与制作
  15. 用python分析股票收益影响因素的方法_【Python】用Python分析股票的收益和风险
  16. filco的pin码_filco蓝牙键盘配对流程,filco 忍者二代 蓝牙怎么
  17. 俞敏洪励志演讲稿【二】
  18. Android 性能优化四个方面总结
  19. android5.1.1版本怎么升级,Android 5.1 悄悄升级 版本号升至 LMY47E
  20. Matlab提取矩阵行数与列数

热门文章

  1. 区块链人才有多吃香?这些城市,为了抢人各显神通
  2. 个人博客系统项目设计及结果展示图
  3. designate原理及自动化部署
  4. HTML中打开新页面的方法
  5. STM32 RTC时钟源LSE
  6. PMP 第8章 项目质量管理
  7. 52单片机与MH-Sensor-Series模块使用简单检测车轮转速
  8. DevOps 解决方案:最大限度地提高开发人员的工作效率,缩短上市时间以及提高客户满意度
  9. 【C语言刷题训练】——————一元二次方程
  10. springboot对条件接口Condition的扩展和使用----1