首页 > 我要在一个网页里面显示另一个网页的某一部位该怎么做?

我要在一个网页里面显示另一个网页的某一部位该怎么做?

我现在是在A网页的HTML里面加了个iframe标签,然后用iframe的src属性链接到另一个B网页要显示的网页地址,但是问题是得到的效果是在A里面iframe这里显示了B网页的整个网页。我只需要B网页的某一部位,比如这部位里上边距100px,离左边距300px,我只需要这一部位的网页内容,我该用iframe什么属性来设置?

或者说这个需求根本不能用iframe来做的,必须用其他技术?请各位大神说详细点。谢谢!

补充下 我要的是B网页的某一部位位置!!!!!这个需求难就难在这里!!!!!

在补充下 B网页是外网人家的网站,我不能改动B网页的代码!比如B网页是新浪天气,我只需要显示天气预报的那一区域的网页内容!!!!!!我到处都百度不到答案啊!!!!!!!求大神!!!!!!!!!!


抓取页面,提取数据,再重新生成???

<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

当然这样貌似只是抓回来了,你还需要做处理的


被选中为答案的那个回答,他的答案基本上是没什么用的,因为被iframe引入的页面有可能需要 css 渲染及js代码执行 才会呈现出来页面, 而他的答案只是把那个页面的html代码取出来, 然后输出, 相关的css及其他有关联的内容忽略了,所以显示出来的效果是不正确的.

分割线

@代码诗人芋头 回答的是正确的,只是楼主不明白,然后还一点也不虚心,最终跟人家吵起来,这种气氛,怎么能让大家再有心情去帮助别人回答问题? 问问题的人不是爷,回答你的问题只是大家热心帮忙, 所以请谦虚些.

下面的代码展示了,引入百度的页面,并显示一个百度的网页App(日历)单独显示的效果(被引入页面的网址已在代码中有体现).

  <div style="width:540px;height:440px;overflow:hidden;">
	<iframe src="http://www.baidu.com/s?wd=%C8%D5%C0%FA&rsv_bp=0&rsv_spt=3&rsv_sug3=1&rsv_sug=0&rsv_sug1=1&rsv_sug4=48&inputT=1312" style="position:relative;top:-140px;left:-30px;width:1000px;height:9999px;"></iframe>
  </div>

上面代码中相关数据说明:
540px 和 440px 为你要显示被引入页面中要显示区域的宽度和高度.
-140px 和 -30px 为被引入的页面需要偏移多少 才能定位到你要显示的那部分的坐标值(可自己测量后填写).

原理: @代码诗人芋头 已经解释了了.


lz,,不难啊,你用一个div套住一个iframe,然后把iframe position:absolute,div overflow:hidden .不就可以了么。。。so easy


可以先用php等语言抓页面过来,如@Oishi 的答案,然后利用jQuery的.load()事件,比如你要获取的是<div id="weather"></div>部分的代码,要添加到<div id="show"></div>的部分上去,则你可以这样写:
后端先抓取页面(@Oishi的代码):

//php文件假设为weather.php
<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

然后在显示的页面

$('#show').load('weather.php #weather');
//文件名后头跟的#weather是关键,直接利用CSS选择器筛选出你要的部分

这样就可以了,jQ的CSS选择器还是比较强大的,应该能满足你的需求。

我用的测试代码,给你参考一下吧。首先是PHP文件,假设为api.php:

//做成API的形式直接api.php?q=关键词即是百度页面
<?php
	$url = "http://www.baidu.com/s?wd=".$_GET['q'];
	$curl = curl_init($url);
	curl_exec($curl);
	curl_close($curl);
?>

前端页面代码

<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.9.0/jquery.min.js"></script>
<script>
	$(function() {
		$('body').load('api.php?q= #container');
	});
</script>

p.s.请认认真真的把我的代码测试一下,测试完了再来发表您的高论吧。在我看来,你的那些个看法都是滑稽可笑的,我都放出测试代码了,你只要复制一下这样你都不愿意做么。


我也有类似疑问,如果不用php抓,而是ajax GET请求页面b,然后jquery提取,不过这要加载b的所有请求包括images,js请求...不太爽 有解决的方法吗?

【热门文章】
【热门文章】