将内容从网站加载到MATLAB,包括内部框架(iframe)

时间:2013-09-25 23:23:21

标签: php html matlab iframe

我在MATLAB中使用urlread加载网站内容,然后搜索以供进一步使用。

但是,我遇到了一个网站,我需要的内容位于特定的内部框架中,该框架嵌入 index.php <iframe>

当我将urlread与看似嵌入主文件的文件的url一起使用时,我仍然只获取 index.php 的内容而不是< EM> targetframecontent.php

我猜urlread可能不是正确的工具,或者我可能会忽略其他让我尝试失败的事情。 有没有办法将这样的内部框架的内容放入MATLAB?


编辑:更准确一点:

我通常会使用以下内容将网站内容读入我的MATLAB工作区:

data = urlread('http://[...]index.php')

但是这样做我只获得父 index.php 的内容,而不是嵌入式 targetframecontent.php 的内容。我在浏览网站源代码时想到了这一点,其中包含我感兴趣的内容的网站部分被加载到一个框架中:

<iframe src="http://[...]targetframecontent.php" width="850px" height="1000px" border="0" frameborder="0"></iframe>

因此我试图直接使用urlread加载到特定目标框架中的网址。

然而,当我这样做时,我仍然得到了相同的内容,好像我还在加载 index.php 。 因此,每当我尝试使用 targetframecontent.php 的直接网址时,它似乎会将urlread重定向回 index.php 。当我尝试在浏览器中加载 targetframecontent.php 时,也会发生这种情况。

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

看起来site in question检查HTTP请求的Referrer。使用wget,如果您通过了--referer选项,则可以下载<iframe>

$ wget --referer="http://www.sf.tv/sfmeteo/lokalprognosen/index.php?q=Gen%C3%A8ve" -O test_ref "http://www.sf.tv/sfmeteo/lokalprognosen/detailprognose.php?id=&q=Gen%C3%A8ve&max=&drs=0&kiosk=&js=&deeplink=&f="
$ cat test_ref
[...]
<body class="sf">

<!-- referrer:http://www.sf.tv/sfmeteo/lokal -->

    <script type="text/javascript"> <!-- 
        var keineprognose = '0'; 
        // -->
    </script>   


<p class="inv">
    <a href="#anker_cm">zum Inhalt</a><br />
</p>

但是,如果您wget没有发送推荐人,则会获得:

wget -O test_noref "http://www.sf.tv/sfmeteo/lokalprognosen/detailprognose.php?id=&q=Gen%C3%A8ve&max=&drs=0&kiosk=&js=&deeplink=&f="
 <body class="sf" role="application">

<p class="inv">
    <a href="#anker_cm">zum Inhalt</a><br />
</p>
<!--googleoff: all-->    <div id="HEADWRAP" class="sf-header">
  <div class="INNERWRAP">
    <h1 class="inv">SF Schweizer Fernsehen - Navigation</h1>

这是原始的父页面。

因此,要将其纳入MATLAB,您需要设置Referer HTTP标头。不幸的是,我现在没有MATLAB在我面前,但是这个页面看起来很好地介绍了如何使用MATLAB HTTP请求发送标头:http://undocumentedmatlab.com/blog/expanding-urlreads-capabilities/

编辑:因为该页面不是非常明显,所以这里是urlread2函数的链接,其中还包含一些示例:http://www.mathworks.com/matlabcentral/fileexchange/35693-urlread2/content/urlread2.m