Html 嵌入网站的一部分

Html 嵌入网站的一部分,html,embed,screen-scraping,Html,Embed,Screen Scraping,假设我想把我最喜欢的网络漫画之一的最新漫画嵌入我的网站,作为对它的一种宣传。webcomic在一个带有id的div里面有一个条带,所以我想我可以把div嵌入到我的站点中,只是我找不到任何代码示例来说明如何嵌入(它们都显示了如何嵌入flash或整个网站)。 有人能告诉我是怎么做的吗 PS我不希望使用服务器端脚本或外部服务(这是嵌入RSS时经常建议的) 您可以使用iframe。内容不在该页面上,但看起来很像 下面是一个例子: 看起来是这样的: <iframe src ="http://www.

假设我想把我最喜欢的网络漫画之一的最新漫画嵌入我的网站,作为对它的一种宣传。webcomic在一个带有id的div里面有一个条带,所以我想我可以把div嵌入到我的站点中,只是我找不到任何代码示例来说明如何嵌入(它们都显示了如何嵌入flash或整个网站)。 有人能告诉我是怎么做的吗


PS我不希望使用服务器端脚本或外部服务(这是嵌入RSS时经常建议的)

您可以使用
iframe
。内容不在该页面上,但看起来很像

下面是一个例子:

看起来是这样的:

<iframe src ="http://www.example.com/index.html" width="100%" height="300"></iframe>

这是不可能的,因为您无法操作iframe/frame内容。使用iframe标记只会修改标记中的内容,而不会修改src。 AJAX也不行,因为您必须在同一个域上

例如,您可以将PHP与cURL一起使用,也可以简单地与fopen一起使用。

Update-使用jQuery的跨域请求(在客户端) 昨天我浏览了James Padolsey的博客,他在那里发表了一篇关于如何使用jQuery的文章,Chris Heilmann也有一篇不错的文章

其原理是使用->YahooAPI进行网页查询,您将收到包含所有html的JSON。快乐刮擦:)

用php刮取远程数据,用jQuery加载 考虑一下简单的AJAX调用,它将截取喜剧元素并使用主要用于此目的的
更新其内容,怎么样

您还将使用一个简单的php来获取远程页面,因为您无法在另一个域上进行ajax调用

注意:用户必须启用JavaScript,以下代码也使用jQuery库

把它们放在一起
  • 在您的页面上,如果您想显示远程连环漫画,请仅为此目的创建一个div,我们将其称为
    更新连环漫画

    <div id="update-comic">
        <!-- here comes scraped content -->
    </div>
    
  • 现在是jQuery魔术,您可以在php刮板上进行ajax调用,只获取您感兴趣的相关元素。将此脚本放在您的查看页面中(您的

    
    $(函数(){
    //设置所有必需的变量
    变量
    localUrl='/comic scrape.php',
    elementId=“#远程喜剧id”,
    elementToUpdate=$(“#更新漫画”);
    //使用elementId内容更新本地elementToUpdate
    //从php的localUrl
    加载(localUrl+''+elementId;
    });
    
  • 我希望,我涵盖了一切

    使用simplexml和xpath 正如philfreo在评论中所建议的,可行的解决方案还可以包括选择所需的id服务器端。使用php的simplexml和一点xpath非常简单:

    <?php
    
        // set remote url and div id to be found
        $elementId = 'remote-comic-id';
        $url = 'http://www.example.com/';
    
        // instantiate simple xml element and populate from $url
        $xml = new SimpleXMLElement($url, null, true);
        
        // find required div by id
        $result = $xml->xpath("//div[id={$elementId}]");
        
        // take first element from array, which is our desired div
        $div = array_pop($result);
    
        echo $div;
    
    xpath(“//div[id={$elementId}]”;
    //从数组中获取第一个元素,它是我们想要的div
    $div=array\u pop($result);
    echo$div;
    
    不过,别忘了先问问网络喜剧的作者他们是否真的想这样做。他们甚至可能有一些“隐藏”的URL供您包含。事实上,您“宁愿不使用服务器端脚本或外部服务”是愚蠢的-如果你真的需要这样做,你应该这样做。这是用来嵌入flash对象的。这是用来嵌入很多东西的,但不是有效的,并且不允许你有选择地删除页面的一部分。我知道iframe,但我如何定位一个特定的div?我不想嵌入整个网站,只是一个具有strip。你不能让你有选择地用iframe删除页面的一部分。如果你打算使用自己的PHP脚本下载/提供文件,你也应该用PHP解析漫画,而不是使用客户端(jQuery)为此,PHP中有很多库可以轻松地从HTML访问某个节点。OP希望资源服务器尽可能友好。我认为这是提供此类功能的最简单的方法之一。此外,它还可以扩展为解析响应HTML并仅缓存相关的
    \id
    @philfreo更新代码,以反映做xml解析服务器端的要求好吧,我想我别无选择,只能参与一些服务器端脚本编写……是时候找一个php教程了。
    <script type="text/javascript">
    $(function () {
        // set all your required variables
        var 
            localUrl = '/comic-scrape.php',
            elementId = '#remote-comic-id',
            elementToUpdate = $('#update-comic');
    
            // update the local elementToUpdate with elementId contents
            // from your php in localUrl
    
            elementToUpdate.load(localUrl + ' ' + elementId;
    });
    </script>
    
    <?php
    
        // set remote url and div id to be found
        $elementId = 'remote-comic-id';
        $url = 'http://www.example.com/';
    
        // instantiate simple xml element and populate from $url
        $xml = new SimpleXMLElement($url, null, true);
        
        // find required div by id
        $result = $xml->xpath("//div[id={$elementId}]");
        
        // take first element from array, which is our desired div
        $div = array_pop($result);
    
        echo $div;