文件交换

图像缩略图

通过URLRED和没有内置浏览器将HTML-Table数据获取到MATLAB中

版本1.0.0.0(4.91 kB) Sven Koerner.
基于GetTableFromWeb,具有更多功能,可以从Web到Matlab中带入表格数据

15下载

更新2010年12月07日

查看许可证

Forth FortableFromWeb_Mod基于2010年8月20日的非常好“挑选本周”(//www.tatmou.com/matlabcentral/fileexchange/22465-get-html-table-data-into-matlab.)由杰里米巴里。
它受到原始功能的限制的启发,并且应该有帮助,谁遇到了所请求的网页的加载时间。因此,解决方法不使用MATLAB使用内部WebBrowser,但占用URLRED函数来导入和分析表-WebData。

要获取表数据,有必要知道您要在数据中读取的URL和哪个URL
桌子。如果您有一个URL但不知道具有指定表单ummer的表的表都有数据使用原始烦恼GetTableFromWeb
//www.tatmou.com/matlabcentral/fileexchange/22465-get-html-table-data-into-matlab.)检查您感兴趣的内容的Tablenumber。

第一个例子(在描述结束时)通过德国铁路进行实际出发信息,用于铁路站法兰克福HBF(由IBNR,国际火车站号码编码)。

第二个例子属于Jeremy Barry的orinigal例子,并获得财务信息。

有两个输入参数:
URL_String - 是请求的网页的字符串
nr_table - 要获取的表数量和放入out_table

out论证:
OUT_Table - 是请求数据的单元格数组

例子:

%德国铁路旅行信息示例
IBNR = 8098105;%IBNR火车站:法兰克福 - HBF(对于更多IBNR,请参阅:http://www.ibnr.de.vu/
url_string = ['http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?rt=1&ld=10000&daid=.',Num2str(IBNR),'和BoardType = Dep&Time =实际&Pro下载188bet金宝搏ductsDefault = 1111000000&start = Yes'];%问题字符串呼吁法兰克福HBF的实际出发信息
nr_table = 2;%表与旅行信息数据
Out_table = gettablefromweb_mod(url_string,nr_table)

%财务例子
%运行gettabledataScript查看,哪个表是7号(估值措施)
url_string =('http://finance.yahoo.com/q/ks?s=goo');
nr_table = 7;
Out_table = gettablefromweb_mod(url_string,nr_table)

引用

Sven Koerner(2021)。通过URLRED和没有内置浏览器将HTML-Table数据获取到MATLAB中(https://www.mathwands.com/matlabcentral/fileexchange/29642-get-html-table-data-into-matlab-via-urlread-and-without-builtin-browser),Matlab中央文件交换。检索到

评论和评级(23.

詹姆斯莫尔根斯特纳

发现问题:第184行表示:而(ISCell(R))然后r = r(1)。我遇到了r是0x0细胞的发生;所以在技术上,对ISCell的调用返回真实,但r(1)的索引不存在,而matlab quit。我猜测还需要测试大小> 0吗?

我用于下载股票市场信息。我使用MarketWatch [不是Yahoo Finance]。这确实如此*不是*在盒子里为我工作;我已经改变了它来使用Webraead而不是UrlRead。现在它确实工作,非常好。非常感谢。请注意,我还制作了另一个更改:函数现在返回我找到有用信息的表的总数。

Kashyap Patel.

不适合雅虎。它说{'没有检测到的表。'}有人可以帮忙吗?

BerkeÖzalbant.

Benedikt Heid.

优秀的功能,像魅力一样工作。

非常感谢Brian(2011年3月28日评论):我用regexpi替换了regexp的所有实例,并将regexprep(...,'preservecase')选项添加到所有regexprep调用中,它处理了的情况而不是

Bekir Yildiz.

男士萨纳

使用WebRead的代码的变化实际上非常简单。它只是要求替代
urltext = java.lang.String(URLREAD(URL_STRING));

选项= weboptions('contenttype','text');
urltext = java.lang.string(Webraead(url_string,选项));

男士萨纳

我一直在使用这个函数,但它最近在网站上失败了 - 我认为是因为该网站使用cookie。但是,我能够使用WebRead下载内容(Mathworks推荐)。我想知道是否有一种简单的方法,可以使用WebRead而不是URLRED进行功能,而不会对现有代码进行广泛的更改?

Emmanuel Roussel.

优秀,只是改变
如果i> 1%如果有表读取

如果i> = 1%如果有表读取
如jorge建议,如果html文件中只有1表。

瓦伦拯救

当我尝试使用此时,我得到了403个禁止错误。
如何到达需要凭据传递给它的网站(用户名+密码)?

João.

Rajkumar.

如何使用它来下载一系列表以进行不同的日期和时间。

J.D.

同意豪尔赫:
如果页面中只有一个表,则需要修改“如果i> = 1%,则需要读取”部分。

除此之外,非常有帮助!

西蒙花环

非常努力,非常感谢。

ingrid

喜欢它,一直试图通过使用URLREAD作为起点来解析数据,但它让我发达一个头痛,因为列中的数据之间没有分隔符,这使我不可能。现在我的代码只是几行,并确实是我想要的!

加雷斯托马斯

像魅力一样工作,谢谢:)

乔治

伟大的功能!但是,我似乎只发现了一个只有一个表的网页发现了一个问题,我得到了“没有检测到的表”。我变了:

如果i> 1%如果有表读取

如果i> = 1%如果有表读取

要纠正仅检测一个表的情况,并完美地工作。

道格拉斯

嗨,我很漂亮。但是,如果每次运行脚本,我需要如何提取多个表格?而且还无法读取一些文本,并且返回一个[]单元格数组。谢谢。

大卫杰斯普

对不起,上面的愚蠢问题现在被分类了!

大卫杰斯普

那太棒了!你知道如何从发现的数字中删除'',所以我可以用它们吗?

raj sodhi.

极好的!

鲍里斯拉州Oreshkin.

优秀的。

布莱恩

伟大的工具。我发现的一个问题是,在一些HTML站点中,表标识符是大写的(例如而不是等)。在这些情况下,函数失败,因为字符串比较命令区分大小写。修改使用Regexprep(...,'preserveCase')和regexpi()在适当的情况下,允许从原始功能失败的网站中提取表。

Matlab释放兼容性
用R2010A创建
兼容任何释放
平台兼容性
视窗 苹果系统 Linux.

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!