Php 将内容从网站加载到MATLAB,包括内部框架(iframe)
我在MATLAB中使用Php 将内容从网站加载到MATLAB,包括内部框架(iframe),php,html,matlab,iframe,Php,Html,Matlab,Iframe,我在MATLAB中使用urlread加载网站内容,然后搜索这些内容以供进一步使用 然而,我遇到了一个网站,我需要的内容位于一个特定的内部框架中,该框架通过嵌入index.php 当我将urlread与似乎嵌入到主文件中的文件的url一起使用时,我仍然只获取index.php的内容,而不是targetframecontent.php的内容 我猜urlread可能不是用于此目的的正确工具,或者我可能忽略了使我的尝试失败的其他因素。 有没有办法将这种内部框架的内容输入MATLAB 编辑:更精确一点:
urlread
加载网站内容,然后搜索这些内容以供进一步使用
然而,我遇到了一个网站,我需要的内容位于一个特定的内部框架中,该框架通过
嵌入index.php
当我将urlread
与似乎嵌入到主文件中的文件的url一起使用时,我仍然只获取index.php的内容,而不是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
直接用于特定目标框架中加载的url
然而,当我这样做的时候,我仍然得到了相同的内容,就好像我仍然在加载index.php一样。
因此,每当我尝试使用targetframecontent.php的直接url时,它似乎会将urlread
重定向回index.php。这也是我尝试在浏览器中加载targetframecontent.php时发生的情况
谢谢你的帮助 它看起来像是检查HTTP请求的引用者。使用wget
,如果您通过--referer
选项,您可以下载
:
$ 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>
这是原始的父页面
因此,要将其引入MATLAB,需要设置Referer
HTTP头。不幸的是,现在我面前没有MATLAB,但这一页似乎很好地介绍了如何使用MATLAB HTTP请求发送头:
编辑:因为它在该页面上不是非常明显,这里有一个指向
urlread2
函数的链接,其中还包括一些示例:urlread
将只获取您提供的任何URL。如果在浏览器中打开iframe的URL,是否会获得嵌入的内容?如果无法预测“targetframecontent.php”的URL,则需要手动解析目标。MATLAB可能不是最好的语言…你能用另一种语言下载内容并手动将其输入MATLAB吗?如果我打开目标帧的url,我仍然可以访问main index.php。我好像被自动重定向到了那里。你能分享你试图从中提取信息的页面的URL吗,还是它是内部的?听起来他们好像在耍花招。是一个例子谢谢!我花了一段时间才弄明白到底该怎么做,但经过几次尝试,终于成功了。下面是我如何使用urlread2
及其助手函数http\u createHeader
的结尾:header=http\u createHeader('referer'),'http://www.sf.tv/sfmeteo/lokalprognosen/index.php?q=Gen%C3%A8ve')data=urlread2('http://www.sf.tv/sfmeteo/lokalprognosen/detailprognose.php?q=Gen%C3%A8ve“,”标题)
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>