序言

2021年4月入职了南京一家数据导向的人工智能企业。这个岗位除了写些Python的脚本代码外,还有的工作就是文本标记。文本标记可以认为是人工将数据整理、清洗的一个过程,虽然比较枯燥但也是必不可少的环节。

在过去的半个多月里,我接触到了如何处理json文件。之前我也比较菜,接触到的都是可以用xpath直接匹配到html文件的那种,在现在的工作里我第一次接触到了json文件。现在我以民生加银沪深300ETF这个基金为例,通过分析它的json文件来处理它的申购赎回清单。

分析

据了解,一般只有以ETF三个字母结尾的基金才会有“申购赎回清单”,而这里只有“民生加银沪深300ETF”这一个基金是符合要求的。因此这次就不用写翻页功能了,因为只有一个符合要求的,所以只要单独处理这一个页面就行了,如图所示:

我们需要得到的是以下几个字段:基金代码、公告日期、持仓股票的名称、持仓股票的代码、持仓股票数量、现金替代标志、申购溢价比例、赎回折价比例和替代金额。可以看到上图这个页面里全都有了。

于是我写了以下的代码:

import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36','Referer': 'http://www.msjyfund.com.cn/osoa/views/funds/fundDetail.html?fund_code=mcaSesVXrHU=&fund_type=M0Uo0ORwvYw=',
}
base_url = "http://www.msjyfund.com.cn/osoa/views/funds/fundDetail.html?fund_code=mcaSesVXrHU=&fund_type=M0Uo0ORwvYw="
html = requests.get(url=base_url, headers=headers).content.decode()
print(html)

运行后得到如下结果:

C:\Users\ABC\AppData\Local\Programs\Python\Python38\python.exe C:/Users/ABC/PycharmProjects/pythonProject/1.py
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=9" /><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><link href="/osoa/css/style.css" rel="stylesheet" type="text/css"><title>民生加银</title></head><body><!--header--><div id="headerContent"></div><!--banner--><div class="banner_box banner_box1"></div><!--content--><div id="bodyContent"><div class="content bg_gray" id="funds_fundDetail"><div class="wrapfix pt290"><div class="prarea clearfix prarea1" style="background: #fcfcfe;"><div class="fl"><!-- 非货币型 --><div id="tabs02" class="fhp_fund"><div class="jy_top clearfix"><p class="active" data-value="1">单位净值走势</p><p data-value="2">累计净值走势</p></div><div class="jy_body"><div class="jy_bot" style="display: block;"><div class="tab03"><div class="jy_sub_tit clearfix"><a href="javascript:;" class="active" data-value="1">1月</a><a href="javascript:;" data-value="3">3月</a><a href="javascript:;" data-value="6">6月</a><a href="javascript:;" data-value="12">1年</a><a href="javascript:;" data-value="36">3年</a><a href="javascript:;" data-value="40">今年以来</a><a href="javascript:;" data-value="41">成立以来</a><span class="nv_block">历史净值查询 &gt;</span></div><div class="jy_sub_body"><div class="jy_sub_bot" style="display: block;"><div class="jy_chart" id="fhp_fund_chat_yjbx"></div></div></div></div></div></div></div><!-- 货币型 --><div id="tabs02" class="hp_fund" style="display: none;"><div class="jy_top clearfix"><p class="active" data-value="3">七日年化收益率</p><p data-value="4">万份收益</p></div><div class="jy_body"><div class="jy_bot" style="display: block;"><div class="tab03"><div class="jy_sub_tit clearfix"><a href="javascript:;" class="active" data-value="3">3个月</a><a href="javascript:;" data-value="12">1年</a><a href="javascript:;" data-value="36">3年</a><a href="javascript:;" data-value="40">今年以来</a><span class="nv_block">历史净值查询 &gt;</span></div><div class="jy_sub_body"><div class="jy_sub_bot" style="display: block;"><div class="jy_chart" id="hp_fund_chat_yjbx"></div></div></div></div></div></div></div></div><div class="fr" id="fund_base_info"><script id="fund_info_02" type="text/template" defer="defer"><div class="jy_tit"><h2>{{= it.fund_short_name }}<span>({{= it.fund_code }})</span></h2><div class="clearfix"><a href="javascript:;" class="blue_bor">{{= it.fund_type }}基金</a><a href="javascript:;" class="red_bor">{{= it.risk_level }}</a></div></div>{{? it.fund_text == "非货币型" }}<div class="jy_cover clearfix" id="show_fhb_content"><div><h2><strong>{{= it.unit_nv }}</strong></h2><label>单位净值<span>[ {{= it.nv_date.substr(5,5) }} ]</span></label></div><div class="nr_bor"><p>日涨跌幅:<span class="{{= it.daily_change_color }}">{{= it.daily_change }}</span></p><p class="nb_mar">净值变动:<span class="{{= it.nv_change_color }}">{{= it.nv_change }}</span></p></div></div>{{??}}<!-- 货币型 --><div class="jy_cover clearfix" id="show_hb_content" style="padding-bottom: 30px;"><div><h2><strong>{{= it.serven_days_annual_profit }}</strong></h2><label>七日年化收益率 <span>[ {{= it.nv_date.substr(5,5) }} ]</span></label><small>万份收益 <em>{{= it.profit_per_million }}</em></small></div><div class="nr_bor"><p>赎回时长:<span>{{= it.redeem_time || 0 }}</span>个交易日</p><p>成立日期:<span>{{= it.establish_date }}</span></p><p class="nb_mar">最新规模:{{= it.newest_scale ? '<span>'+it.newest_scale+'元</span><em>('+it.newest_scale_date+')</em>' : '--' }}</p></div></div>{{?}}<div class="jy_bottom"><h5>投资金额:</h5><div class="clearfix"><label><input type="text" value="{{= it.min_buy_amount_detail.indexOf('--') >= 0 ? '0.00' : it.min_buy_amount_detail }}" id="tz_amount"/><em>元</em></label><a href="javascript:;" class="lj_bug">立即申购</a><span class="rate_calculation"></span></div><p class="bug_rate" style="{{= it.fund_text == '非货币型' ? 'display: block;' : 'display: none;' }}">费率<s>{{= it.buy_rate }}</s><em>{{= it.preferential_rate.indexOf('--') >= 0 ? '' : '1折起' }}</em><b>(使用加银宝扣款并且招行卡除外)</b></p></div></script></div></div><div class="infoarea clearfix"><div class="fl" style="height: auto;min-height: 761px;"><div class="in_tab clearfix" id="show_tag"><a href="javascript:;" class="active">基本信息</a><a href="javascript:;" style="display: none;">投资组合</a><a href="javascript:;">基金经理</a><a href="javascript:;">基金公告</a><a href="javascript:;">费率</a><a href="javascript:;">分红信息</a><a href="javascript:;">销售机构</a><a href="javascript:;" >历史净值</a><a href="javascript:;" style="margin-right: 0px;display: none;" id="etf_qd">申赎清单</a></div><div id="product_info"><!-- 基本信息 --><div class="in_block jbxx fund_info_01" style="display: block;"><script id="fund_info_01" type="text/template" defer="defer"><ul class="in_ul"><li><span>基金名称</span><p class="p1">{{= it.fund_name }}(简称 "{{= it.fund_short_name }}")</p></li><li><span>基金代码</span><p class="p1">{{= it.fund_code }}</p></li><li><span>基金类型</span><p class="p1">{{= it.fund_type }}</p></li><li><span>成立日期</span><p class="p1">{{= it.establish_date.replace("-", "年").replace("-", "月").replace("年0", "年").replace("月0", "月")+"日" }}</p></li><li><span>基金管理人</span><p class="p1">{{= it.manager_name }}</p></li><li><span>基金托管人</span><p class="p1">{{= it.custodian_name }}</p></li><li><span>业绩比较基准</span><p class="p1">{{= it.benchmark.replace(/style/ig, "data-style") }}</p></li><li><span>投资目标</span><p class="p1">{{= it.invest_objective.replace(/style/ig, "data-style") }}</p></li><li><span>投资范围</span><p class="p1">{{= it.invest_scope.replace(/style/ig, "data-style") }}</p></li><li class="fund_strategy" style="{{= it.invest_strategy.replace(/<.*?>/ig, "") ? 'display: block;' : 'display: none;' }}"><span>投资比例</span><p class="p1">{{= it.invest_strategy.replace(/style/ig, "data-style").replace(/span/ig, "p") }}</p></li><li><span>风险收益特征</span><p class="p1">{{= it.risk_feature.replace(/style/ig, "data-style") }}</p></li></ul></script></div><!-- 投资组合 --><div class="in_table tzzh" style="display: none;padding: 0;"><div class="in_table "><div class="in_tit clearfix"><h4>--</h4><p>--</p></div><div class="in_chart in_chart1"><div class="in_img" id="tzzh_graph" style="width:550px;height:400px"></div><div class="in_info clearfix" style="position: relative;"><p>股票<i></i></p><p>债券<i class="p2"></i></p><p>现金<i class="p3"></i></p><p class="nr_mar">其他<i class="p4"></i></p></div></div></div></div><!-- 基金经理 --><div class="in_table nice_tab_box zjjl" style="display: none;padding: 0;"><ul class="nice_tab_tit clearfix manager_list"><script id="manager_list" type="text/template" defer="defer">{{ for(var i = 0; i < it.length; i++) { }} <li class="{{= i == 0 ? 'active' : ''}}"><div class="ntt_img"><img src="{{= it[i].photo_url }}" height=100 alt=""/></div><h5>{{= it[i].member_name }}</h5><p>{{= it[i].education }}</p><span class="{{= i == 0 ? 'active' : ''}}"></span></li>{{ } }}</script></ul><div class="nice_tab_body"><div class="nice_tab_children"><div class="in_table "><div class="posit clearfix"><div class="p_left"><a href="javascript:;"><img></a></div><div class="p_right"><h4>--<span>--</span><div class="a_btns"><!-- <a href="/osoa/views/newsView/fundManagerList.html" target="_blank">走近基金经理 &gt;</a> --></div></h4><span>任职时间:<em>--</em></span><p>--</p></div></div></div><div class="in_table "><div class="in_tit clearfix"><h4>基金经理观点</h4></div><div class="in_word">--</div></div><div class="in_table in_table4"><div class="in_tit clearfix"><h4>产品业绩</h4></div><table width="100%" border="1" cellpadding="0" cellspacing="0"><thead><tr><th>基金代码</th><th>基金简称</th><th>成立日期</th><th>份额净值(元)</th><th>今年以来 (%)</th><th>成立以来 (%)</th></tr></thead><tbody class="manager_performance"></tbody></table><div class="in_tit clearfix hbly_type" style="margin-top:20px;display:none"></div><table class="hbly_type" width="100%" border="1" cellpadding="0" cellspacing="0" style="display:none"><thead><tr><th>基金代码</th><th>基金简称</th><th>成立日期</th><!--                                                   <th>份额净值(元)</th> --><th>七日年化收益率 (%)</th><th>万份收益 (元)</th></tr></thead><tbody class="manager_performance2"></tbody></table><div class="fund_manger_page"></div></div></div></div></div><!-- 基金公告 --><div class="zjgg" style="display: none;"><div class="in_table xxarea xxarea1" id="release_document"><div class="in_tit clearfix"><h4>法律文件</h4><a href="javascript:;" class="a_more announcement_list" data-type="0"></a></div><div class="posit clearfix"></div></div><div class="in_table xxarea xxarea1" id="periodic_announcement"><div class="in_tit clearfix"><h4>定期公告</h4><a href="javascript:;" class="a_more announcement_list" data-type="1"></a></div><div class="posit clearfix"></div></div><div class="in_table xxarea xxarea1" id="interim_announcement"><div class="in_tit clearfix"><h4>临时公告</h4><a href="javascript:;" class="a_more announcement_list" data-type="2"></a></div><div class="posit clearfix"></div></div></div><!-- 费率 --><div class="zjfl" style="display: none;"><div class="in_table rgfv"><div class="in_tit clearfix"><h4>基金认购费率</h4></div><table width="100%" border="1" cellpadding="0" cellspacing="0"><thead><tr><th>认购金额(M,单位:元)</th><th>费率</th></tr></thead><tbody></tbody></table></div><div class="in_table sgfv"><div class="in_tit clearfix"><h4>基金申购费率</h4></div><table width="100%" border="1" cellpadding="0" cellspacing="0"><thead><tr><th>申购金额(M,单位:元)</th><th>费率</th></tr></thead><tbody></tbody></table></div><div class="in_table shfv"><div class="in_tit clearfix"><h4>基金赎回费率</h4></div><table width="100%" border="1" cellpadding="0" cellspacing="0"><thead><tr><th>持有时期(T)</th><th>费率</th></tr></thead><tbody></tbody></table></div><div class="in_table in_table3 yzfv"><div class="in_tit clearfix"><h4>基金运作费</h4></div><table width="100%" border="1" cellpadding="0" cellspacing="0"><thead><tr><th>管理费率</th><th>托管费</th><th>销售服务年费</th></tr></thead><tbody></tbody></table></div><div class="a_btns"><a href="/osoa/views/serviceCenter/rateDiscount.html" target="_blank">网上交易费率优惠 &gt;</a></div></div><!--分红信息 --><div class="fhxx" style="display: none;"><div class="in_table in_table1"><div class="in_tit clearfix"><h4>基金分红记录</h4></div><table width="100%" border="1" cellpadding="0" cellspacing="0"><thead><tr><th>分红年度</th><th>权益登记日</th><!-- <th>除息日</th> --><th>红利发放日</th><th class="w29">每10分收益单位派息 (元)</th></tr></thead><tbody></tbody></table><div class="in_no" style="display: none;"><img src="/osoa/images/jp/img_03.png" />暂无分红记录</div></div><div class="in_table in_table2"><div class="in_tit clearfix"><h4>基金拆分记录</h4></div><table width="100%" border="1" cellpadding="0" cellspacing="0"><thead><tr><th>拆分日期</th><th>拆分前净值</th><th>拆分后净值</th><th>拆分比例 (%)</th></tr></thead><tbody></tbody></table><div class="in_no" style="display: none;"><img src="/osoa/images/jp/img_03.png" />暂无拆分记录</div></div></div><!-- 销售机构 --><div class="xsjg" style="display: none;"><div class="in_table"><table width="100%" border="1" cellpadding="0" cellspacing="0"><thead><tr><th>销售机构</th><th>服务热线</th></tr></thead><tbody></tbody></table></div></div><!-- 历史净值列表 --><div class="in_table in_table2 lsjz" style="display: none;"><div class="in_tit clearfix"><h4>历史净值列表</h4><div class="date clearfix"><div class="d_input"><input type="text" id="start_time" readOnly onClick="WdatePicker({maxDate:'#F{$dp.$D(\'end_time\')}'})"/><i></i></div><span>一</span><div class="d_input"><input type="text" id="end_time" readOnly onClick="WdatePicker({minDate:'#F{$dp.$D(\'start_time\')}'})"/><i></i></div><a href="javascript:;" id="search_data"></a></div></div><table width="100%" border="1" cellpadding="0" cellspacing="0"><thead><tr><th>发布日期</th><th>--</th><th>--</th><th>资产净值(元)</th></tr></thead><tbody></tbody></table></div><!-- 赎回清单开始--><div class="redeem_list shqd" style="display: none;"><div class="redeem_search"><em></em><span>清单日期</span><input type="text"  id="startDate" readonly="readonly" /><a href="javascript:void(0);" class="btn" id="serchBtn">查询</a></div><!-- 基金信息 --><div id="fund_info" ></div><!-- 成份股信息内容 --><div id="fund_list" ></div></div><!-- 赎回清单结束--></div></div><div class="fr"><div class="f_top">热销基金</div><ul id="hot_fund_list"></ul></div></div></div></div></div><!--footer--><div id="footerContent"></div><!--右侧悬浮--><!-- <div class="right_bar"><a href="javascript:;" class="bar_block kf"></a><a href="javascript:;" class="bar_block wei"><div class="hide_wei"><img src="/osoa/images/img_w3.png"></div></a><a href="javascript:;" class="bar_block up"></a></div> --><!-- 模板 --><script id="manager_performance" type="text/template" defer="defer">{{ for(var i = 0; i < it.length; i++) { }}    {{? !(it[i].fund_type == '6'||it[i].fund_type == '5') }}<tr><td>{{= it[i].fund_code }}</td><td>{{= it[i].fund_short_name }}</td><td>{{= it[i].establish_date }}</td><td class="{{= it[i].unit_nv_color }}">{{= it[i].unit_nv }}</td><td class="{{= it[i].yieldratety_color }}">{{= it[i].yieldratety }}</td><td class="{{= it[i].yieldratestart_color }}">{{= it[i].yieldratestart }}</td></tr>{{?}}{{ } }}</script><script id="manager_performance2" type="text/template" defer="defer">{{ for(var i = 0; i < it.length; i++) { }}        {{? it[i].fund_type == '5'||it[i].fund_type == '6'}}<tr><td>{{= it[i].fund_code }}</td><td>{{= it[i].fund_short_name }}</td><td>{{= it[i].establish_date }}</td><td class="{{= it[i].serven_days_annual_profit }}">{{= it[i].serven_days_annual_profit }}</td><td class="{{= it[i].profit_per_million }}">{{= it[i].profit_per_million }}</td></tr>{{?}}{{ } }}</script><!-- 模板 --><script type="text/javascript">//项目主体页面 pageCode:页面路径编码,jsonParam:参数,isLoad:是否每次都加载var _defaultPage = {"pageCode": "funds/fundDetail", "jsonParam":{},"isLoad":false}; //项目页头页面 pageCode:页面路径编码,jsonParam:参数,isLoad:是否每次都加载,默认是inclue/headervar _headerPage = {"pageCode": "include/header", "jsonParam":{},"isLoad":false}; //项目页脚页面 pageCode:页面路径编码,jsonParam:参数,isLoad:是否每次都加载,默认是inclue/footervar _footerPage = {"pageCode": "include/footer", "jsonParam":{},"isLoad":false};</script><script type="text/javascript" src="/osoa/version.js"></script><!--基础框架包 --><script type="text/javascript" src="/thinkiveJs.min.js"></script></body>
</html>Process finished with exit code 0

可以通过摁下Ctrl+F键进行搜索基金名称等关键词,会发现根本没有相关的HTML,所以这个表格的数据因该是通过Ajax来渲染的。我又在浏览器里按了F12,查看Network里的DOC一项,同时确认了我的想法。这是我在F12中的Network里的XHR中寻找,最终发现我要的数据都在这个json文件中,如下两张图所示:

所以现在来看,只要处理这个json文件就可以了,于是我写了如下的代码:

import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36','Referer': 'http://www.msjyfund.com.cn/osoa/views/funds/fundDetail.html?fund_code=mcaSesVXrHU=&fund_type=M0Uo0ORwvYw=',
}
base_url = "http://www.msjyfund.com.cn/servlet/json"
json = requests.get(url=base_url, headers=headers).json()
print(json)

满心欢喜的运行了却得到了如下结果:

C:\Users\ABC\AppData\Local\Programs\Python\Python38\python.exe C:/Users/ABC/PycharmProjects/pythonProject/1.py
{'error_no': '-10004', 'error_info': '调用BUS接口的功能号不能为空'}Process finished with exit code 0

我反思了一下,发现是没有传参数,于是我在这里找到了要传的参数,如下图所示:

于是url改为

http://www.msjyfund.com.cn/servlet/json?funcNo=905505&fund_code=515350&tradingday=&curtPageNo=1&numPerPage=1000

接着顺着这个思路就可以得到数据了!

完整代码

import requestsdata = {"decel_date": "",  # 公告日期# "trade_date": "",  # 交易日期# "sub_redem_sec_type": "",  # 申赎成份类别"fund_code": "",  # 基金交易代码"sec_code": "",  # 成份证券公布代码"sec_name": "",  # 证券简称"sec_quantity": "",  # 证券数量:股/手/克"cash_substitute_sign": "",  # 现金替代标志:0-禁止; 1-允许;2-必须;3-退补# "cash_substitute_ratio": "",  # 现金替代溢价比例"fixed_substitute_amount": "",  # 固定替代金额"sub_replace_amt": "",  # 申购替代金额"redem_replace_amt": "",  # 赎回替代金额}headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36','Referer': 'http://www.msjyfund.com.cn/osoa/views/funds/fundDetail.html?fund_code=mcaSesVXrHU=&fund_type=M0Uo0ORwvYw=',
}
base_url = "http://www.msjyfund.com.cn/servlet/json?funcNo=905505&fund_code=515350&tradingday=&curtPageNo=1&numPerPage=1000"
json = requests.get(url=base_url, headers=headers).json()
# print(json)items = json.get('dataList')[0].get('data')
for item in items:data['fund_code'] = item['fundcode']data['decel_date'] = item['tradingday']data['sec_code'] = item['stockcode']data['sec_name'] = item['stockname']data['sec_quantity'] = item['stocknum']data['cash_substitute_sign'] = item['cashflag']data['sub_replace_amt'] = item['redemptiondiscountrate']data['redem_replace_amt'] = item['cashratio']data['fixed_substitute_amount'] = item['substituteamount']print(data)

运行结果


END

数据分析——ETF基金申购赎回清单相关推荐

  1. 基金申购,赎回知识点

    认购是指投资者在基金的设立募集期内购买基金单位的行为. 申购是指基金成立后,向基金管理人购买基金单位的行为. 赎回是指基金投资者向基金管理人卖出基金单位的行为. 一般情况下,认购期购买基金的费率相对来 ...

  2. 上交所跨市场ETF申购赎回实时回报

    申购赎回实时回报: 1.二级市场过户记录(二级市场代码) 2.沪市成分股过户记录(全部成分股) 3.非沪市资金记录 4.沪市资金记录 5.ETF一级市场过户记录(一级市场代码) 转载于:https:/ ...

  3. 【金融量化】ETF基金是什么?有什么特点?

    1 含义 ETF(交易型开放式指数基金)是以某一选定的指数所包含的成分证券或商品为投资对象,依据构成指数的证券或商品的种类和比例,采取完全复制或抽样复制,进行被动投资的指数基金.ETF不但具有传统指数 ...

  4. 【重要】ETF基金和LOF基金的区别和买卖

    LOF(Listed Open EndedFund),上市式开放型基金. ETF(Exchange Traded Fund),交易式指数型基金(开放式). 场内:指的是A股市场,交易股票的市场. 场外 ...

  5. 外包以小时计算金额的费用_基金申购赎回费用计算实例

    一.实例 在前一篇文章买基金,我们到底交了哪些费用? ,我们介绍了买基金我们会交哪些费用,这篇文章就介绍一下,我们直接交的申购赎回费用计算实例. 假设,一数一道上天入地无所不能基金A,确认当天基金净值 ...

  6. ETH2.0将开启超级牛市,BitOffer以太坊ETF基金涨幅超10倍

    近日,以太坊团队发布公告称,将于12月1日上线以太坊2.0信标链主网,以太坊2.0升级将会给整个加密行业布局带来巨大颠覆,将智能合约推向一个新的高度,推动加密货币市场提前进入牛市.据BitOffer交 ...

  7. 牛市回归,MATIC再创历史新高,马蹄ETF基金两周大涨152%

    2021年12月14日,MATIC精准回踩长期均线MA60之后,快速探底回升,之后开启暴涨模式,两周时间成功突破2.8美金,再创历史新高.而马蹄ETF基金的净值更是从23美金最高涨到了58美金,大涨了 ...

  8. 从tushare获取场内ETF基金数据

    最近参加了上海计算机应用大赛,做一个关于ETF基金的题目 写了一个使用tushare接口获取ETF基金数据的代码: 代码如下: 导入包 # 导入tushare import tushare as ts ...

  9. etf基金代码大全_纳斯达克指数ETF基金汇总

    纳斯达克(NASDAQ,National Association of Securities Dealers Automated Quotations)又称纳指.美国科技指数,是美国全国证券交易商协会 ...

  10. python爬取IHO,上证50,以及两个上证ETF基金并进行对比

    IHO在新浪财经爬取 上证50在东方财富网爬取 另外两个上证ETF基金编号分别为510100, 510050在同花顺上爬取 这些网站的图表数据都是通过json传递的 所以找到对应的api即可抓取数据 ...

最新文章

  1. 字符串转64位int(strtol,_atoi64)
  2. Part8 多态性 8.1运算符重载
  3. 2018.11.08 NOIP模拟 景点(倍增+矩阵快速幂优化dp)
  4. 华为鸿蒙系统小米,继华为鸿蒙之后,又一国产系统在悄悄崛起:小米MIOS全面曝光...
  5. WinHex V14.6 SR-2 注册码
  6. 一个时代的剪影-----汉 (作者:金立扬)
  7. Excel表格数据的下载
  8. android 自定义view实现仿QQ运动步数进度效果
  9. java爬虫系列(三)——漫画网站爬取实战
  10. case语句使用举例
  11. 小程序开发报错 使用wx.reLaunch跳转报错 Expected updated data but get first rendering data如何解决 ???
  12. [JIRA] 从3.6.2旧版升级到新版6.0.8的详细过程
  13. Linux查看进程的4种方法
  14. 学会如何更系统地批判性地思考问题
  15. linux学习:解决Ubuntu运行时CPU温度过高导致自动关机保护
  16. 蘑菇丁工学云打卡教程
  17. OpenGL入门 矩阵堆栈实现简单行星系统
  18. %f 、%g、%e在C语言中的探究 和 肥胖问题C语言
  19. was控制台英文改成中文
  20. 通过 Elasticsearch 实现聚合检索

热门文章

  1. 我的python笔记06
  2. 如何选择工业相机(转载)
  3. 智课雅思词汇---二十、前缀syn-sym-syl是什么意思
  4. 软件测试周刊(第47期):要爱具体的人,不要爱抽象的人;要爱生活,不要爱生活的意义。
  5. 自定义View时,用到Paint Canvas的一些温故,PropertyAnimation中的ObjectAnimator(动画三,“大大姐”的旋转跳跃)...
  6. matlab植物大战僵尸小游戏
  7. 香港流行乐黄金二十年——经典歌手(音乐人)全面回顾 三
  8. Android 房贷计算
  9. python邮件处理(1)-IMAP收取邮件
  10. DNA测序技术发展史:一代、二代、三代测序技术简要原理及比较