当前位置: 首页 > news >正文

网站开发单位网站漏洞怎么修复

网站开发单位,网站漏洞怎么修复,浏览器正能量网站免费,公司形象墙设计图前几天有写过两篇#xff1a; 【爬虫】爬取A股数据写入数据库#xff08;二#xff09; 【爬虫】爬取A股数据写入数据库#xff08;一#xff09; 现在继续完善#xff0c;分析及爬取股票的历史K线数据通过ORM形式批量写入数据库。 2024/05#xff0c;本文主要内容如下… 前几天有写过两篇 【爬虫】爬取A股数据写入数据库二 【爬虫】爬取A股数据写入数据库一 现在继续完善分析及爬取股票的历史K线数据通过ORM形式批量写入数据库。 2024/05本文主要内容如下 对东方财富官网进行分析并作数据爬取使用python使用pip install requests 模拟http数据请求获取数据。将爬取的数据写入通过 sqlalchemy ORM 写入 sqlite数据库。记录爬取股票的基本信息如果库中已存在某个股票代码则进行更新。后续计划会不断完善最终目标是做出一个简单的股票查看客户端。本系列所有源码均无偿分享仅作交流无其他供大家参考。 python依赖环境如下 pip install requests2.31.0 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install pandas2.2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install jsonpath0.8.2 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install sqlalchemy2.0.30 -i https://pypi.tuna.tsinghua.edu.cn/simple1. 对东方财富官网历史K线数据分析 网页地址https://quote.eastmoney.com/sz002224.html?jump_to_webtrue#fullScreenChart 通过分析网页发现https://push2his.eastmoney.com/api/qt/stock/kline/get?请求后面带着一些参数即可以获取到相应数据我们不断调试模拟这类请求即可。分析过程如下图所示F12调出调试框不断尝试 2. 爬取数据代码逻辑 如下即爬取数据的可运行代码复制后直接能跑 import pandas as pd from typing import List import requests from jsonpath import jsonpathclass CustomedSession(requests.Session):def request(self, *args, **kwargs):kwargs.setdefault(timeout, 60)return super(CustomedSession, self).request(*args, **kwargs) session CustomedSession() adapter requests.adapters.HTTPAdapter(pool_connections 50, pool_maxsize 50, max_retries 5) session.mount(http://, adapter) session.mount(https://, adapter)# 请求地址 QEURY_URL http://push2his.eastmoney.com/api/qt/stock/kline/get # HTTP 请求头 EASTMONEY_REQUEST_HEADERS {User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko,Accept: */*,Accept-Language: zh-CN,zh;q0.8,zh-TW;q0.7,zh-HK;q0.5,en-US;q0.3,en;q0.2, } 获取单只股票的历史K线数据def get_k_history_data(stock_codes: str, # 股票代码beg: str 19000101, # 开始日期19000101表示 1900年1月1日end: str 20500101, # 结束日期klt: int 101, # 行情之间的时间间隔 1、5、15、30、60分钟; 101:日; 102:周; 103:月fqt: int 1, # 复权方式0 不复权 1 前复权 2 后复权 ):try:# 生成东方财富专用的secidif stock_codes[:3] 000: # 沪市指数secid f1.{stock_codes}elif stock_codes[:3] 399: # 深证指数secid f0.{stock_codes}if stock_codes[0] ! 6: # 沪市股票secid f0.{stock_codes}else:secid f1.{stock_codes} # 深市股票EASTMONEY_KLINE_FIELDS {f51: 日期, f52: 开盘, f53: 收盘, f54: 最高, f55: 最低,f56: 成交量, f57: 成交额, f58: 振幅, f59: 涨跌幅, f60: 涨跌额, f61: 换手率,}fields list(EASTMONEY_KLINE_FIELDS.keys())# columns list(EASTMONEY_KLINE_FIELDS.values())fields2 ,.join(fields)params ((fields1, f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13),(fields2, fields2),(beg, beg),(end, end),(rtntype, 6),(secid, secid),(klt, f{klt}),(fqt, f{fqt}),)code secid.split(.)[-1]json_response session.get(QEURY_URL, headersEASTMONEY_REQUEST_HEADERS, paramsparams, verifyFalse).json()data_list []klines: List[str] jsonpath(json_response, $..klines[:])if not klines:return data_listname json_response[data][name]rows [kline.split(,) for kline in klines]# 0 1 2 3 4 5 6 7 8 9 10# 日期, 开盘, 收盘, 最高, 最低, 成交量, 成交额, 振幅, 涨跌幅, 涨跌额, 换手率# 2024-05-08, 4.89, 4.82, 4.91, 4.80, 61811, 29955564.00, 2.25, -1.23, -0.06, 0.98# data_list [{code: 002224, name: 三力士, time: 2024-05-08, info: 0,1,2,3,4,5,6,7,8,9,10}]for row in rows:time, open, close, high, low, vol, quota, mm, change, range, tun rowline_str f{open},{close},{high},{low},{vol},{quota},{mm},{change},{range},{tun}data_list.append({id: None,code: code, name: name, time: time, info: line_str})return data_listexcept Exception as e:print(get_k_history_data error-----------------------, str(e))return data_listif __name__ __main__:data get_k_history_data(stock_codes002224, beg20240507, end20500101)print(----, data)3. 将爬取的数据通过ORM形式写入数据库 数据库表设计 from sqlalchemy import create_engine, Column, Integer, String, DateTime, Float, Index, Table from sqlalchemy.orm import declarative_base, sessionmaker, scoped_session from sqlalchemy.schema import UniqueConstraint from datetime import datetime# 声明一个基类所有的ORM类都将继承自这个基类 DBBase declarative_base()# 创建引擎 engine create_engine(sqlite:///a.db, echoFalse) # 绑定引擎 Session sessionmaker(bindengine) # 创建数据库链接池直接使用session即可为当前线程拿出一个链接对象conn db_session scoped_session(Session) 股票K线信息表 0 1 2 3 4 5 6 7 8 9 10 日期, 开盘, 收盘, 最高, 最低, 成交量, 成交额, 振幅, 涨跌幅, 涨跌额, 换手率 2024-05-08, 4.89, 4.82, 4.91, 4.80, 61811, 29955564.00, 2.25, -1.23, -0.06, 0.98 data_list [{code: 002224, name: 三力士, time: 2024-05-08, info: 1,2,3,4,5,6,7,8,9,10}]class tb_k(DBBase):__tablename__ tb_kid Column(Integer, primary_keyTrue, autoincrementTrue)code Column(String, nullableFalse, comment股票代码)name Column(String, comment股票名称)time Column(String, comment时间)info Column(String, comment开盘,收盘,最高,最低,成交量,成交额,振幅,涨跌幅,涨跌额,换手率)__table_args__ (Index(unique_index, code, time, uniqueTrue),) # 创建表, 创建所有class xx(DBBase) DBBase.metadata.create_all(engine)写入数据库的逻辑 # 查询某个股票最近更新K线的日期 def query_latast_K_data(code):result db_session.query(tb_k).filter(tb_k.codecode).order_by(desc(tb_k.time)).first()if result is None:return 19000101return str(result.time).replace(-,)# 批量插入或更新某只股票的历史K线数据 def insert_or_update_stock_k(data_list):if len(data_list) 0:returntry:db_session.bulk_insert_mappings(tb_k, data_list)db_session.commit()except Exception as e:print(insert_or_update_stock_k error, str(e))4. 整体逻辑流程 步骤 输入某个股票代码爬取该股票的历史K线数据将返回结果组成数组批量写入数据库每次写入前会根据该股票代码查询最新的同步日期从该日期开始进行追加同步 # 更新某个股票的最新日K线数据到数据库 def update_k_info_db(code002224):# 根据 code 查询库中已存在的某个股票日K线数据的最近日期作为开始日期向后获取beg_time db_orm.query_latast_K_data(code)data_list stock.get_k_history_data(stock_codescode, begbeg_time, end20500101)if len(data_list) 0:db_orm.insert_or_update_stock_k(data_list)if __name__ __main__:update_base_info_db()最终结果保存在 a.db中例如 更多内容可关注我后续源码包均在上面回复下载 【爬虫】爬取A股数据系列工具
http://www.w-s-a.com/news/967224/

相关文章:

  • 个人网站制作源代码下载品牌建设部
  • 网站备案需要准备什么文创产品设计思路
  • 网站开发书籍推荐青岛城阳新闻最新消息
  • 秦皇岛网站建设服务聊城做网站的公司资讯
  • 30岁转行做网站设计丰涵网站建设
  • 山东省和住房建设厅网站首页开发商不按时交房可以退房吗
  • asp网站怎么做404页面跳转本地南通网站建设
  • 点击网站出现微信二维码的链接怎么做申请网站空间怎么做
  • 网站开发的论文题目广告设计排行榜
  • 网络营销网站 功能南京h5制作公司
  • 做网站的费用的会计分录合肥做网站推广哪家好
  • 电子商城网站开发怎么wordpress用的什么主题
  • 榆林电商网站建设网上做试卷的网站
  • 文山网站建设代理中公教育培训机构官网
  • 郑州it培训机构有哪些上海外贸网站seo
  • dw做网站的实用特效广东住房与城乡建设厅网站
  • 模板网站 动易哪方面的网站
  • 怎么给网站做外链邵连虎郑州做网页的公司
  • 重庆网站开发哪家好宁波网站建设caiyiduo
  • 手机网站建设价格手机网站模版更换技巧
  • 哈尔滨松北区建设局网站美妆网站建设
  • 不需要网站备案的空间网站推广的基本方法是哪四个
  • 如何检查网站死链劳动仲裁院内部网站建设
  • 江西省住房和城乡建设网站合同管理系统
  • 网站建设质量保证福州网络推广
  • 高唐网站建设公司广州南站在哪个区
  • 广西柳州网站制作公司郴州网红打卡景点
  • 做网站要固定ip拍摄公司宣传片制作
  • 专业微网站电话号码做软件难吗
  • 邢台网站制作哪家强上海做网站设计