爬取股票信息

爬取网站

网易财经

 

创建的文件

 

 

List_url.py

 

from finance.code_list import CodeListdef Shanghai_Stock_Index():"""上证指数"""code = int(input("证券代号:"))if code >= 201000 and code <= 900957:year = int(input("年份:"))if year >= 1991 and year <= 2020:season = int(input("季度(1  2  3  4):"))if season == 1 or season == 2 or season == 3 or season == 4:url = "http://quotes.money.163.com/trade/lsjysj_zhishu_{}.html?year={}&season={}".format(code, year,season)else:print("您输入的季度错误,请重新输入!")else:print("您输入的年份有误,请重新输入!")else:print("您输入的证券代码有误,请重新输入!")return urldef Shenzhen_Stock_Index():"""深证指数"""code = input("证券代号:")CODE_List = CodeList()if code in CODE_List:year = int(input("年份:"))if year >= 1991 and year <= 2020:season = int(input("季度(1  2  3  4):"))if season == 1 or season == 2 or season == 3 or season == 4:url = "http://quotes.money.163.com/trade/lsjysj_zhishu_{}.html?year={}&season={}".format(code, year,season)else:print("您输入的季度,请重新有误!")else:print("您输入的年份有误,请重新输入!")elif int(code) >= 131800 and int(code) <= 300790:year = int(input("年份:"))if year >= 1991 and year <= 2020:season = int(input("季度(1  2  3  4):"))if season == 1 or season == 2 or season == 3 or season == 4:url = "http://quotes.money.163.com/trade/lsjysj_zhishu_{}.html?year={}&season={}".format(code, year, season)else:print("您输入的季度错误,请重新输入!")else:print("您输入的年份有误,请重新输入!")else:print("您输入的证券代码有误,请重新输入!")return urldef exponent():a = int(input("请问您要执行深证指数操作还是上证指数操作(深证指数请输入:1   上证指数请输入:2):"))if a == 1:item = Shanghai_Stock_Index()elif a == 2:item = Shenzhen_Stock_Index()else:print("输入错误,请重新输入!")return item

 

code_list.py

 

def CodeList():a = ["00000" + str(n) for n in range(1, 10)]b = ["0000" + str(n) for n in range(10, 100)]c = ["000" + str(n) for n in range(100, 1000)]d = ["001696", "001872", "001896", "001965", "001979"]e = ["00" + str(n) for n in range(2000, 2976)]f = ["003816", "031005", "031007", "038011"] + ["0" + str(n) for n in range(38014, 38018)]CODE_List = a + b + c + d + e + freturn CODE_List

 

pro_data.py

 

def Data_Convert(replace, replaced, type, data_list):"""数据格式的变换"""new_data_list = []for i in data_list:st = str(i).replace(replace, replaced)new_data_list.append(type(st))return new_data_list

 

Spider_Data.py

 

from urllib.request import Request, urlopen
from finance.pro_data import Data_Convert
from finance.List_url import exponent
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
from pandas import DataFrame
import redef html():"""爬取网页内容"""headers = {'User-Agent': UserAgent().Chrome}url = exponent()request = Request(url, headers = headers)response = urlopen(request)info = response.read().decode()return infodef get_Data():"""获取数据"""info = html()soup = BeautifulSoup(info, 'html.parser')con = soup.find_all('table', attrs={'class':'table_bg001 border_box limit_sale'})pattern1 = re.compile(r'(?<=<tr class="">).*?(?=</tr>)')pattern2 = re.compile(r'(?<=<tr class="dbrow">).*?(?=</tr>)')data1 = re.findall(pattern1, str(con))data2 = re.findall(pattern2, str(con))pattern_v1 = re.compile(r'(?<=<td>).*?(?=</td>)')data_v1 = re.findall(pattern_v1, str(data1))pattern_v2 = re.compile(r'(?<=<td>).*?(?=</td>)')data_v2 = re.findall(pattern_v2, str(data2))Times = []opening_price = []max_price = []min_price = []closing_price = []change_amount = []    #涨跌额price_limit = []      #涨跌幅trading_amount = []   #成交量trading_volume = []   #成交额while True:if len(data_v1) and len(data_v1) != 0:_ = [Times,opening_price,max_price,min_price,closing_price,\change_amount,price_limit,trading_amount,trading_volume]for item in _:item.append(data_v1[0])item.append(data_v2[0])del data_v1[0], data_v2[0]else:breaknew_opening_price = Data_Convert("," , "", float, opening_price)new_max_price = Data_Convert("," , "", float, max_price)new_min_price = Data_Convert("," , "", float, min_price)new_closing_price = Data_Convert("," , "", float, closing_price)new_trading_amount = Data_Convert("," , "", float, trading_amount)new_trading_volume = Data_Convert("," , "", float, trading_volume)dic = {'日期':Times, '开盘价':new_opening_price, '最高价':new_max_price, '最低价':new_min_price, \'收盘价':new_closing_price, '涨跌额':change_amount, '涨跌幅(%)':price_limit,'成交量(股)':new_trading_amount,\'成交金额(元)':new_trading_volume}DF = DataFrame(dic)return DF

 

main.py

 

from finance.Spider_Data import get_Data
import os
import sysdef save_data():"""保存数据"""_ = input("请输入您要导出的数据文件(.csv)名称:")if '/' in _ :print("输入错误,请重新输入!")else:save_path = "./save_csv/" + _if '.csv' in save_path:if os.path.exists(save_path):os.remove(save_path)Data.to_csv(save_path, sep=',', index=False, header=True)else:Data.to_csv(save_path, sep=',', index=False, header=True)else:new_save_path = save_path + '.csv'if os.path.exists(new_save_path):os.remove(new_save_path)Data.to_csv(new_save_path, sep=',', index=False, header=True)else:Data.to_csv(new_save_path, sep=',', index=False, header=True)def main():"""主程序"""show = input("是否展示数据:")if show == '是':print(Data)_show_ = input("是否要下载数据:")if _show_ == '是':save_data()elif _show_ == '否':sys.exit(0)else:print("输入错误,请重新输入!")elif show == '否':_show_ = input("是否要下载数据:")if _show_ == '是':save_data()elif _show_ == '否':sys.exit(0)else:print("输入错误,请重新输入!")else:print("输入错误,请重新输入!")if __name__ == '__main__':Data = get_Data()main()

 

 

运行

 

在main.py下运行,结果如下:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/37213.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实战干货!用 Python 爬取股票实时数据!

今天我们一起来学习一个 Python 爬虫实战案例&#xff0c;我们的目标网站就是东方财富网&#xff0c;废话不多说&#xff0c;开搞 网站分析 东方财富网地址如下 http://quote.eastmoney.com/center/gridlist.html#hs_a_board 我们通过点击该网站的下一页发现&#xff0c;网页…

基于Python爬虫的股票成交量数据抓取分析系统

目录 数据获取 2 1.1. 实验环境搭建 2 1.2. 抓取数据 2 1.2.1. 新浪财经 3 1.2.2. 网易财经 6 1.2.3. 东方财富 12 1.2.4. TuShare (挖地兔) 19 1.2.5. 其他平台 21 1.3. 数据获取总结 22 1.3.1. 股票代码抓取的总结 22 1.3.2. 日线数据抓取总结 22 1.3.3. 反爬虫策略及解决的总…

朋友股票亏惨了,我一怒用Python爬取了证券最新数据

大家好&#xff0c;我是辣条。 抓取目标: url:http://webapi.cninfo.com.cn/#/marketDataDate 数据目标: 获取 证券代码 证券简称 交易日期 开盘价 最高价 最低价 收盘价 成交数量 难点: 请求头参数mcode 加密生成 使用第三方库: 1. requests 2. execjs 3. js2py 4. math …

Python爬虫实战:爬取股票信息

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者&#xff1a; PS&#xff1a;如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群交流解答点击即可加入…

python爬虫实战-抓取同花顺股票信息

前言&#xff1a; 在之前介绍requests的基础上&#xff0c;现在开始进行实战。 目标网站&#xff1a;http://q.10jqka.com.cn//index/index/board/all/field/zdf/order/desc/page/ 一 涉及到的技术点&#xff1a; &#xff08;1&#xff09;requests: 用于网页请求 &#xff…

微信小程序登录面板切换不了账号,显示网络连接失败?

打开开发工具就会显示这个提示&#xff0c;无论我是点击确定还是取消&#xff0c;切换账号都显示网络连接失败~&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 我看了一些博客&#xff0c;说是选择直连代理。我试了&#xff0c;还是显示 网络连接…

wxpy 扫码登录微信报错 KeyError: pass_ticket(网页版微信登录失败)

使用wxpy开发微信聊天机器人&#xff0c;结果扫码登录后&#xff0c;提示&#xff1a; KeyError: pass_ticket解决方法&#xff1a;wxpy是根据网页版微信的接口封装的库。用wxpy&#xff0c;得去试试网页版微信&#xff08;https://wx.qq.com/&#xff09;看能否正常登录。 如…

pc端集成企业微信的扫码登录及遇到的问题

集成步骤&#xff1a; 1、在企业微信后台中添加应用 2、记录下应用的相关信息&#xff0c;在后文要用到 3、引入企业微信js 旧版&#xff1a;http://rescdn.qqmail.com/node/ww/wwopenmng/js/sso/wwLogin-1.0.0.js 新版&#xff08;20210803更新&#xff09;&#xff1a;http…

uniapp微信登录报错-100,login:fail [:-1]未能完成操作。(PGWXAPI错误-1。)

报内容&#xff1a; { “errMsg”: “login:fail [:-1]未能完成操作。&#xff08;PGWXAPI错误-1。&#xff09;,”, “errCode”: -100, “code”: -100 } 原因&#xff1a; 没有在manifest.json文件里面配置appsecret(微信开放平台申请移动应用之后会有个appsecret) 为什么没…

Android微信登录页面实现

利用Android实现微信手机端的登录页面&#xff0c;对于登录的输入做了一些的条件限制诸如&#xff0c;非空&#xff0c;长度限制等&#xff1b; 效果图如下&#xff1a; xml文件代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <Line…

分享一个基于GPT-3.5 Turbo的开源项目,界面简洁大气,反应速度快

今天在github又发现一个国内的大神开源的chatGPT项目。先看看整体的效果如何吧。 这个项目是基于OpenAI GPT-3.5 Turbo API 的demo。 本地部署 环境准备 安装node 由于该项目是使用node开发&#xff0c;所以&#xff0c;在部署之前先要安装好node环境。检查您的开发环境和部…

一款反应速度完全碾压chatgpt3.5turbo的软件 curor,直接运行

1、软件简介 Build Software. Fast.是一款可以在编辑器中使用 openAI GPT-4 模型编写的软件 官网地址&#xff1a;https://www.cursor.so/ 2.安装方法 不用安装直接运行exe3.使用方法 CTRLK(生成代码)CTRLL(对话功能)

OpenAI ChatGPT3.5-turbo实际解决问题能力评测

OpenAI ChatGPT3.5-turbo实际解决问题能力评测 ​ 程序员在coding的时候会经常遇到需要查阅资料的情况&#xff0c;最好的结果是直接能拿到一份好用的demo版本code&#xff0c;本次我们来评测&#xff1a;bing搜索和chatGPT3.5&#xff0c;解决实际问题&#xff1a;“html 图片…

程序员“摸鱼”神器,GitHub Copilot“凭本事”完全免费

上周Microsoft 365 Copilot的发布会上几段演示视频让朋友圈沸腾了一整天&#xff0c;颠覆&#xff0c;失业&#xff0c;工业革命刷屏&#xff0c;普遍的焦虑中有工作中重度依赖office的朋友表示如果功能都是真的&#xff0c;那么确实可以节约出很多时间摸鱼&#xff0c;但是立马…

AI人工智能时代真的到来了吗?

近一个月来&#xff0c;关于AI人工智能的话题此起彼伏&#xff0c;先有OpenAI发布GPT-4&#xff0c;后有百度推出文心一言&#xff0c;再有微软把GPT-4接入Office全家桶并命名为“Microsoft 365 Copilot”&#xff0c;除此之外&#xff0c;微软Bing还上线了AI绘图功能、谷歌开放…

文字生万物,AI极简史

AI 算法就像一个人类婴儿 哈罗德科恩花了 42 年把 AARON 铸成“另一半自己”。它是一段被画家造出来的计算机程序&#xff0c;或许也可以叫做 AI 系统。先是花了 20 年学会黑白简笔画&#xff0c;1995 年&#xff0c;它第一次表演上色&#xff0c;以一个庞大的机器模样&#xf…

WindTerm使用(暂停更新)

作为一个经常和代码以及服务器打交道的人&#xff0c;连接远程服务器所使用的工具肯定是越方便越好。目前&#xff0c;我使用的是xshell5和MobaXterm两个。Xshell最新的是7&#xff0c;破解版的我懒得去找&#xff0c;那xshell7免费使用一段时间后&#xff0c;就得付费&#xf…

【论文速递】ACM MM 2022 - 基于统一对比学习框架的新闻多媒体事件抽取

【论文速递】ACM MM 2022 - 基于统一对比学习框架的新闻多媒体事件抽取 【论文原文】&#xff1a;Multimedia Event Extraction From News With a Unified Contrastive Learning Framework 【作者信息】&#xff1a;Liu, Jian and Chen, Yufeng and Xu, Jinan 论文&#xff…

JoVE微生物组专刊征稿,写方法拍视频教程发SCI(宏基因组公众号专属福利)

JoVE 视频实验杂志 官网&#xff1a;https://www.jove.com/ 包括上万个实验和分析方法视频&#xff0c;还有几十个领域的数百个专业视频教程资源。 这个杂志被SCI收录了吗&#xff1f;必须的。杂志在Web of Science中JCR信息如下&#xff1a; 2年影响因子 1.1&#xff0c;5年影…

2020年, video captioning论文汇总

目录 CVPR2020&#xff1a;ORG-TRLCVPR2020&#xff1a;STG-KDTIP2020&#xff1a;OSTGTPAMI2020&#xff1a;SibNet&#xff08;MM2018&#xff09;WACV2020&#xff1a;DSDWACV2020&#xff1a;STaTS CVPR2020&#xff1a;ORG-TRL 题目 Object Relational Graph with Teache…