从网站获取数据

时间:2011-09-20 17:19:40

标签: matlab cookies

因此,网站不断更改其显示的数据,我希望每隔几秒钟获取一次数据并将其记录在电子表格中。问题是为了进入页面,我必须有一个我登录时获得的cookie。不幸的是我只知道如何在MATLAB中编程。 MATLAB有一个函数, urlread ,但它不处理cookie。我该怎么做到达那个页面?谁能帮我这个?让我指出一个方向,像我这样的编程noob可以成功。

3 个答案:

答案 0 :(得分:5)

使用HTTP Cookie时,您可以使用wget下载内容。我将使用StackOverflow.com作为示例目标。以下是要遵循的步骤:

1)获取wget命令工具。对于Mac或Linux,我认为它已经可用。在Windows上,您可以从GnuWin32 project或从许多其他端口之一(Cygwin,MinGW / MSYS等)获取它。

2)接下来,我们需要通过登录相关网站来获取经过身份验证的cookie。您可以使用首选浏览器。

在Internet Explorer中,您可以使用“文件菜单>导入和导出>导出Cookie ”来制作它。在Firefox中,我使用Cookie Exporter扩展名将Cookie导出到文本文件。对于Chrome,应该有similar extensions

显然,只要Cookie尚未过期,您只需要执行此步骤一次!

3)找到导出的cookie文件后,我们可以使用wget获取网页,并使用此cookie获取provide it。这当然可以使用SYSTEM函数从MATLAB内部执行:

%# fetch page and save it to disk
url = 'http://stackoverflow.com/';
cmd = ['wget --cookies=on --load-cookies=./cookies.txt ' url];
system(cmd, '-echo');

%# process page: I am simply viewing it using embedded browser
web( ['file:///' strrep(fullfile(pwd,'index.html'),'\','/')] )

解析网页是我不会涉及的另一个主题。获得所需数据后,您可以使用XLSREADXLSWRITE函数与Excel电子表格进行交互。

4)最后你可以在一个函数中编写它,并使用regular intervals函数在TIMER上执行它

答案 1 :(得分:1)

尝试使用java.net。*类。

您应该可以直接在MATLAB工作区中使用它们,如下所述:http://www.mathworks.co.uk/help/techdoc/matlab_external/f4863.html

答案 2 :(得分:0)

Matlab具有用于Web下载的内置功能。对于http站点,有webread.m和websave.m。对于FTP,有mget.m