使用CefSharp动态爬取天天基金网历史基金数据——动态爬取(一)
- 确保安装CefSharp软件包,相关安装步骤可以自行搜索
- CefSharp相关信息可在网上搜索,在这里主要使用到它作为浏览器的功能
- 思路:
- 使用CefSharp打开相关网页,以http://fundf10.eastmoney.com/jjjz_004719.html为例,代码如下:
private void btn_Click(object sender, RoutedEventArgs e)
{web.Address = textBox.Text;
}
- 相关网页打开之后可发现其历史基金数据在以下HTML代码中:
<div id="jztable"><table class="w782 comm lsjz"><thead><tr><th class="first">净值日期</th> <th>单位净值</th><th>累计净值</th><th>日增长率<img title="" id="jjjzTip" style="position: relative;top: 3px;left: 3px;" src="http://j5.dfcfw.com/image/201307/20130708102440.gif" data-placement="bottom" data-html="true" data-original-title="日增长率为空原因如下:<br>1、非交易日净值不参与日增长率计算(灰色数据行)。<br>2、上一交易日净值未披露,日增长率无法计算。"></th><th>申购状态</th><th>赎回状态</th><th class="tor last">分红送配</th></tr></thead><tbody><tr><td>2020-01-23</td><td class="tor bold">1.1168</td><td class="tor bold">1.1168</td><td class="tor bold red">0.71%</td> <td>限制大额申购</td><td>开放赎回</td><td class="red unbold"></td></tr>... ...<tr><td>2019-12-26</td><td class="tor bold">1.0519 </td><td class="tor bold">1.0519</td><td class="tor bold red">0.62%</td><td>开放申购</td><td>开放赎回</td><td class="red unbold"></td></tr> </tbody></table></div>
- 在分析网页的HTML内容发现,其历史基金一次性获取并不完整,需要通过AJAX反复获取。通过需要使用CefSharp的JS异步操作技术,模拟网页按键操作即可实现自动翻页功能。部分代码如下:
script =$"var btns = pagebar.getElementsByTagName(\"label\");" +$"for(var i=0; i<btns.length; i++)" +"{" +$"if(btns[i].getAttribute(\"value\")=={(next).ToString()})" +"{" +"btns[i].click();" +"break;" +"}" +"}";
web.GetBrowser().MainFrame.ExecuteJavaScriptAsync(script);
- 翻页完成后,通过读取当前页面数据即可获得相关历史基金数据。代码如下:
web.GetBrowser().MainFrame.GetSourceAsync().ContinueWith(x =>
{if (!x.IsFaulted){Dispatcher?.Invoke(() => {_htmlDocument.LoadHtml(x.Result);var v = _htmlDocument.GetElementbyId("jztable");if (v != null){if (v.SelectNodes("table").Count != 0){var table = v.SelectNodes("table");if (table[0].SelectNodes("tbody").Count != 0){var tr = table[0].SelectNodes("tbody")[0].SelectNodes("tr");for(int trIdx=0; trIdx < tr.Count; trIdx++){var td = tr[trIdx].SelectNodes("td");win?.Dispatcher?.Invoke(() => {for (int tdIdx = 0; tdIdx < td.Count; tdIdx++){var innerText = td[tdIdx].InnerText;if (innerText.Contains("\n")){innerText = innerText.Substring(0, innerText.IndexOf('\n'));}win.textBox.Text += innerText + "\t";}win.textBox.Text += "\n";});}}}}});}
});
- 爬取网页数据效果如下:
使用CefSharp动态爬取天天基金网历史基金数据——动态爬取(一)相关推荐
- 使用CefSharp动态爬取天天基金网历史基金数据——数据存储(二)
初步爬取到需要的数据之后,需要将数据存储到外部文件中以方便数据处理.本文中采用Excel存储爬取到的数据内容.与本次设计的数据爬取采用C#中的DataGrid进行显示,爬取指定基金号码的历史基金数据, ...
- python爬取天天基金网所有基金数据
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- python爬取基金历史净值_Python爬取天天基金网历史净值数据
type 类型,历史净值用lsjz表示 code 基金代码,六位数字 sdate 开始日期,格式是yyyy-mm-dd edate 结束日期,格式是yyyy-mm-dd per 一页显示多少条记录 为 ...
- python爬取天天基金_Python爬取天天基金网历史净值数据
type 类型,历史净值用lsjz表示 code 基金代码,六位数字 sdate 开始日期,格式是yyyy-mm-dd edate 结束日期,格式是yyyy-mm-dd per 一页显示多少条记录 为 ...
- 使用requests库爬取天天基金网某基金从开始到现在的净值数据
爬取基金从开始到现在的净值数据 打开天天基金网的基金数据 随便点开一个基金,发现每天的净值数据都在这个单位净值走势图中 按F12打开开发者工具,刷新后发现接口为http://fund.eastmone ...
- 集思录REITs基金数据python爬取写入EXCEL表
本文主要讲述REITs基金相关内容, 封闭基金数据获取参见: 集思录封闭基金数据python爬取写入excel表 国债数据获取参见: 和讯网债券数据Python爬取保存成CSV文件之一 1.什么是RE ...
- 集思录封闭基金数据python爬取写入excel表
本文是在之前文章"集思录REITs基金数据python爬取写入EXCEL表"的基础上写成的. 封闭式基金,是相对于开放式基金而言的,是指基金规模在发行前已确定,在发行完毕后和规定的 ...
- python爬取天天基金网全部基金的历史全部净值
** 天天基金网历史净值爬取 ** ** 1.认识天天基金网的数据接口 1,这是所有基金代码.基金名称简称的集合http://fund.eastmoney.com/js/fundcode_search ...
- python爬取基金股票_爬取天天基金网、股票数据
1:首先,开始分析天天基金网的一些数据.经过抓包分析,可知: ./fundcode_search.js包含所有基金的数据,同时,该地址具有反爬机制,多次访问将会失败的情况. 2:同时,经过分析可知某只 ...
最新文章
- 《自然》发布最新科研指数:中美差距缩小,中科院居全球机构首位
- Linux下tar.xz压缩解压
- 基于 Lucene 的桌面文件搜索
- C# 将string 转换为二维码图片,然后转为base64字符串编码 。
- Linux的内存理解
- 一段挂起进程中所有线程的代码
- android系统如何自适应屏幕大小
- Django信号量实现用户密码修改
- 黑马程序员_io流详解
- docker 安装与常用命令与常用容器(containers)环境
- 厉害了我的Qunar!看我工程师写轮眼!
- 音视频编解码技术(二):AAC 音频编码技术
- Vb 6.0 ado连接mysql_VB使用ADO操作Access数据库
- Github上找到开源的《植物大战僵尸》代码分享~
- 微信小程序开发需要什么技术
- 伪随机数产生原理及用法
- Java(十三)集合类(2)
- 记一次生产数据库事故
- python anaconda环境配置_Anaconda安装与环境配置
- C++中的字符串流详解iostream,sstream
热门文章
- python实现excel函数_python操作excel
- Sublime Text个性化设置
- Redis搭建集群,三主三从集群模式
- 青春正能量 中兴发布千元4G拍照神器红牛V5手机
- 想接私活时薪再翻一倍,建议根据这几个开源的SpringBoot项目(含小程序)改改~...
- 华为服务器cpu是否支持虚拟化,处理器配置 - 华为服务器 Brickland平台 BIOS 参数参考 30 - 华为...
- 游戏心得:魔法门之英雄无敌6 人类战役心得
- 【Java面向对象】学习Java经典必刷题库
- 【BUG】RK3568屏幕90度旋转
- 实训汇编语言设计——生成一个口字