一. 思路

最近想要自己做个爬取股票信息然后分析的工具。

主要思路是,通过调用东方财富网的接口,获取所有股票的代码列表。

然后通过网易财经的股票信息的下载接口获取股票信息。

数据分析以后再说。

二. 代码实现

1. 代码结构如下:

2. clsDir.py(创建目录)

def mkdir(path):# 引入模块import os# 去除首位空格path = path.strip()# 去除尾部 \ 符号path = path.rstrip("\\")# 判断路径是否存在# 存在     True# 不存在   FalseisExists = os.path.exists(path)# 判断结果if not isExists:# 如果不存在则创建目录# 创建目录操作函数os.makedirs(path)printpath + ' 创建成功'return Trueelse:# 如果目录存在则不创建,并提示目录已存在printpath + ' 目录已存在'return False

3. stockList.py(获取股票对应代码)

import requests
from fake_useragent import UserAgent
import re
import csv
import clsDirdef getHtml(url):r = requests.get(url, headers={'User-Agent': UserAgent().random,})r.encoding = r.apparent_encodingreturn r.textstockUrl = 'http://86.push2.eastmoney.com/api/qt/clist/get?cb=jQuery1124064028201763104_1562133297741&pn=1&pz=100000&po=0&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f12&fs=m:0+t:6,m:0+t:13,m:0+t:80,m:1+t:2&fields=f12,f14&_=1562133297790'
PATTERN_STOCK = "},{"
if __name__ == '__main__':# 创建目录mkpath = "D:\\Stock"# 调用函数clsDir.mkdir(mkpath)html = getHtml(stockUrl)reslist = re.split(PATTERN_STOCK, html.replace("\"", "").replace("}]}});",""))# 数据清洗:去掉非个股,个股以6(沪市),0(深市),3(创业板)开头datalist = reslist[:]for res in reslist:if not res.startswith('f12'):datalist.remove(res)continueres = res.replace("f12:", "").replace("f14:", "")if not (str(res[1]).startswith('6') or str(res[1]).startswith('3') or str(res[1]).startswith('0')):datalist.remove(res)f = open('D:/Stock/stock.csv', 'w+', encoding='utf-8', newline="")writer = csv.writer(f)writer.writerow(('名称', '代码'))for data in datalist:stock = data.replace("f12:", "").replace("f14:", "").split(",")writer.writerow((stock[1].replace("*",""), stock[0]))f.close()

4.stockInfo.py(通过股票代码,下载股票信息)

import csv
import urllib.request as r
import threading
import clsDir# 读取之前获取的个股csv丢入到一个列表中
def getStockList():stockList = []f = open('D:/Stock/stock.csv', 'r', encoding='utf-8')f.seek(0)reader = csv.reader(f)for item in reader:stockList.append(item)f.close()return stockListdef downloadFile(url, filepath):try:r.urlretrieve(url, filepath)except Exception as e:print(e)print(filepath, "is downloaded")pass# 设置信号量,控制线程并发数
sem = threading.Semaphore(100)def downloadFileSem(url, filepath):with sem:downloadFile(url, filepath)urlStart = 'http://quotes.money.163.com/service/chddata.html?code='
urlEnd = '&end=20190701&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;VOTURNOVER;VATURNOVER'if __name__ == '__main__':# 创建目录mkpath = "D:\\Stock\\StocksInfo"# 调用函数clsDir.mkdir(mkpath)stockList = getStockList()stockList.pop(0)for s in stockList:scode = str(s[1])# 0:沪市;1:深市url = urlStart + ("0" if scode.startswith('6') else "1") + scode + urlEndfilepath = 'D:/Stock/StocksInfo/' + (scode + '_' + str(s[0])) + '.csv'threading.Thread(target=downloadFileSem, args=(url, filepath)).start()

三. 测试执行

1. 生成EXE

1.1. 安装pyinstaller

执行:

pip install pyinstaller

1.2. 打包生成exe

基本语法:
pyinstaller options myscript.py
常用的可选参数如下:
--onefile 将结果打包成一个可执行文件
--onedir 将所有结果打包到一个文件夹中,该文件夹包括一个可执行文件和可执行文件执行时需要的依赖文件(默认)
--paths=DIR 设置导入路径
--distpath=DIR 设置将打包的结果文件放置的路径
--specpath=DIR 设置将spec文件放置的路径
--windowed 使用windows子系统执行,不会打开命令行(只对windows有效)
--nowindowed 使用控制台子系统执行(默认)(只对windows有效)
--icon=<FILE.ICO> 将file.ico添加为可执行文件的资源(只对windows有效)

如pyinstaller --paths="D:\Queena" guess_exe.py

将stockList和stockInfo分别打包:

(venv) D:\workspace-python\stock\sun>pyinstaller -F stockList.py
(venv) D:\workspace-python\stock\sun>pyinstaller -F stockInfo.py

2. 执行后的结果:

Python爬取股票信息相关推荐

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

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

  2. 使用python爬取股票信息

    基本思路 首先查看robots.txt,文档说明是允许爬虫的 查找接口:第一次对整个页面进行了爬取,发现返回的内容并不包含我们所需要的信息.说明这部分的信息是通过AJAX渲染的,这就需要我们去查找接口 ...

  3. python爬取股票信息—简略版(沪股)

    简单写了个爬虫爬取东方财富网的股票信息,运用pandas将数据存储在excel表中. # -*- codeing = utf-8 -*- # @Time : 2021/3/2 18:10 # @Aut ...

  4. Python爬取股票信息,并实现可视化数据

    截止2019年年底我国股票投资者数量为15975.24万户, 如此多的股民热衷于炒股,首先抛开炒股技术不说, 那么多股票数据是不是非常难找, 找到之后是不是看着密密麻麻的数据是不是头都大了? 今天带大 ...

  5. 用 Python 如何爬取股票信息

    要使用 Python 爬取股票信息,您需要执行以下步骤: 安装相关库,例如 Requests 和 BeautifulSoup. 找到股票信息的数据源,通常可以在金融网站或第三方数据提供商处获得. 发送 ...

  6. Python爬虫——爬取股票信息

    Python爬虫--爬取股票信息 1. 准备工作 每一次浏览器访问网页,会自动向浏览器服务器发送本地的电脑信息(headers),远方服务器接收到信息后会反馈给你网页信息(response),然后电脑 ...

  7. python爬取新浪财经的股票信息

    import requests import threadingdef display_info(code):url = 'http://hq.sinajs.cn/list=' + coderespo ...

  8. 【爬虫+数据可视化】Python爬取CSDN博客访问量数据并绘制成柱状图

    以下内容为本人原创,欢迎大家观看学习,禁止用于商业及非法用途,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/article/ ...

  9. 如何用python爬取新浪财经

    通过python爬取新浪财经的股票历史成交明细 要求 通过新浪财经爬取历史数据:http://market.finance.sina.com.cn/transHis.php?symbol=sz0000 ...

最新文章

  1. MySQL · 特性分析 · 优化器 MRR BKA
  2. HiveSQL常用数据处理语句
  3. 天然富硒科技成果转化-李喜贵:成立联合体谋定农业大健康
  4. linux 命令 mv 自己的理解
  5. php 升级 源码,通过编译安装升级php(保证原有的扩展不变)
  6. oracle实现主键自增长及自动生成策略
  7. iTOP4412 gdbserver安装
  8. java 生成 rtf_java itext生成rtf文档
  9. SpringBoot整合shiro实现细粒度动态权限
  10. 零基础学UI设计难吗?
  11. TCP/IP网络编程之基于TCP的服务端/客户端(一)
  12. 【2021四川省赛】E.Don‘t Really Like How The Story Ends 图论
  13. 运城学院计算机应用技术,运城学院学子在中国大学生计算机设计大赛中取得历史最好成绩...
  14. 论文阅读 (二十三):Attention-based Deep Multiple Instance Learning (2018)
  15. 交叉编译xorg-server
  16. 基于SVM的点云分类(树木,建筑两类)
  17. [原创]持续给力:jQuery实现表格隔行变色效果案例详解
  18. 【PTA|Python】浙大版《Python 程序设计》题目集:第六章
  19. 如何设置使用Windows系统自带的图片查看器打开图片?
  20. tf2.0 实现DeepFM

热门文章

  1. 51单片机物联网开发
  2. 30. 串联所有单词的子串
  3. Kibana:Kibana 入门 (二)
  4. 开环放大倍数和闭环放大倍数的区别
  5. S32DS实时查看变量的值
  6. Redis学习笔记——快速入门
  7. [深度学习] 使用LSTM实现股票预测
  8. Luogu P3346 [ZJOI2015]诸神眷顾的幻想乡 广义SAM 后缀自动机
  9. ubuntu源换成清华源_Ubuntu替换国内源(清华源)
  10. opencv程序十一:鼠标绘图