【问题标题】:Is it possible to embed a part of a web site into my web site?是否可以将网站的一部分嵌入到我的网站中?
【发布时间】:2011-08-11 07:47:44
【问题描述】:

我希望“窃取”网站的 div 并将其嵌入我的网站(不使用 iframe)。谁能告诉我这样做的确切方法是什么?谢谢。

【问题讨论】:

  • 网站是否在同一个域中?
  • 我的意思是不同域上的站点。
  • 您必须使用服务器端技术,因为 JavaScript 无法跨域发送请求。谷歌 XSS.

标签: javascript html iframe embed


【解决方案1】:

Yahoo 管道是开始使用“获取页面”模块的好地方。之后,这是使用正则表达式模块摩擦或更改您不想要的 html 的情况。

嵌入可以通过两种方式完成:

  1. 使用管道回调功能在页面内运行 javascript,将页面的部分静态/原始内容交换为管道提供的内容。

2.Yahoo 管道有一个模块,可以将数据(以 JSON 格式)发布到合适的输入处理页面,该页面将存储信息以包含在需要数据的任何页面中。

可以在http://bishop.comxa.com 上查看此操作的一个出色(且完全合法)示例

问得好,他们甚至可能会给你一些指示。

【讨论】:

    【解决方案2】:

    您可以将 yahoo yql 与数据抓取一起使用,专为这些目的而设计。

    http://developer.yahoo.com/yql/guide/yql-code-examples.html#yql_html_scraper

    你可以使用 Xpath

    select * from html where url="http://finance.yahoo.com/q?s={ticker_sym}" and xpath='//div[@id="yfi_headlines"]/div[2]/ul/li/a'
    

    【讨论】:

      【解决方案3】:

      很简单:

      您可以使用 file_get_contents() 或 http://simplehtmldom.sourceforge.net/manual.htm 将页面作为所有 HTML 获取,然后使用 javascript 或 Jquery 获取 DIV。

      一个例子是:

      $homepage = file_get_contents('http://www.somesite.com/');
      

      然后就可以解析 $homepage 变量了。

      我会做的是:

      http://simplehtmldom.sourceforge.net/manual.htm

      $html = file_get_html('http://www.google.com/');
      $ret = $html->find('div[id=foo]'); 
      

      【讨论】:

        【解决方案4】:

        作为@jini's answer 的补充,您可以将该脚本制作成一个文件gate.php,并仅使用jQuery 加载内容:

        $('#container').load('gateway.php?url=foo.com #target_div');
        

        还有一个可能的gateway.php

        <?php    
        print file_get_contents($_GET['url']);    
        ?>
        

        请确保清理您的输入!

        【讨论】:

          猜你喜欢
          • 2021-09-07
          • 2011-01-11
          • 2011-12-14
          • 1970-01-01
          • 2022-11-14
          • 2013-05-09
          • 2021-03-10
          • 2020-10-29
          • 2015-04-26
          相关资源
          最近更新 更多