0

我隶属于 expedia,并且正在使用他们的 API 系统。他们启动网站的要求之一是将条款和协议添加到我的页面,他们给了我们这个页面: http: //travel.ian.com/index.jsp ?pageName=userAgreement&locale=en_US&cid=xxx 。我不想去不同的站点,并且由于更新,我无法复制和粘贴信息。我也不喜欢使用 iframe。有人对如何做到这一点有任何想法吗?这是一个在他们的网站上使用这个域名的网页:http ://www.helloweekends.com/terms.htm 。有谁知道他们是怎么做到的?任何帮助将不胜感激!

4

3 回答 3

1

由于它来自另一个域,因此无法使用 JavaScript,因为同源策略。此外,依赖 JavaScript 进行更新对于禁用 JavaScript 的用户来说会很麻烦,因为他们看不到这些条款。由于您不想使用 iframe 或复制内容,我想您最好的办法是使用您选择的服务器端语言抓取他们的页面,然后将其显示在您的页面上。

但是,如果您依赖他们的标记,那么抓取可能会有些棘手。如果他们更改标记,您的脚本可能会中断,从而停止更新条款。

有各种关于如何抓取网站的教程。以下是几个 PHP 示例:

  1. 使用 PHP 进行网页抓取
  2. PHP 屏幕抓取教程

注意确保他们允许您在实施之前抓取页面,这样您就不会违反他们的规则。

于 2012-04-08T21:17:55.703 回答
0

你知道他们的 API 是否提供 JSON 服务吗?JSONP 调用可以为您获取值,但它会使您的页面依赖 javascript 让用户看到更新的页面。

另一种选择是使用任何其他服务器端语言的 PHP 来获取 url 的内容,处理它并返回您需要的块。

于 2012-04-08T21:18:59.140 回答
0

我建议使用jQuery 提供的 load() 函数。它通过简单的 AJAX 调用来检索文件,您甚至可以使用选择器仅抓取页面的一部分。例如,将 HTML 页面的内容加载到 div 中:

$('#div_id').load('my_file.html');

或者只是加载页面的一部分:

$('#div_id').load('my_file.html #main_text_id');
于 2012-04-08T21:20:08.523 回答