【问题标题】:Very basic HTML/scripting/active page question非常基本的 HTML/脚本/活动页面问题
【发布时间】:2009-12-22 01:25:02
【问题描述】:

一位朋友在她的网站设计方面向我寻求帮助。尽管我对 HTML、XML、Php、ASP.Net、javascript 等背后的基础知识有相当多的了解,但我不太愿意坐下来从头开始编码。我所做的所有工作都使用 Java、C++ 等。

我的朋友想在她的网站上添加一个垂直滚动的选取框 - 没问题,互联网上都有相应的代码。这是棘手的部分 - 她希望从另一个网站动态提取文本。这也不像一个简单的文本文件 - 它是来自特定博客文章的名称列表,因此将涉及大量文本处理来遍历所有其他标记并提取相关信息。

在我看来,这是她的选择 -

1) 编写某种 perl 脚本或某种设置为每天运行的脚本。该脚本将访问博客并提取必要的信息。然后它将使用新信息更新 HTML 文件的选取框文本。

2) 某种用 ASP 或 PHP 编写的活动页面,每次访问站点时都会动态构建选取框(以及站点的其余部分),基本上每次都执行 perl 脚本的工作。这似乎有可能会有点慢。

据我了解,这些是她唯一的选择。我对么?在我只是缺少的javascript中没有简单的方法来做到这一点?我知道您可以引用要使用选取框动态拉取的图像,但这并不是那么简单...

谢谢。

编辑:我想我的问题是这样的:除非我静态地实现它,否则这将是相当复杂的,对吧?我相信它在我的头上。这就是为什么我想简单地将文本列表复制/粘贴到 html 文档中。每次博客更新时都需要更新,但这似乎每隔几个月才会发生一次,所以这不是一件大事。我意识到这是一个懒惰的解决方案,但这是来自一个非常缺乏 Web 开发经验的人。

作为参考,这是文本将来自的特定博客文章,我的朋友只想显示当您向下滚动几个段落时开始的名称列表。

http://truthnottasers.blogspot.com/2008/04/what-follows-are-names-where-known.html

【问题讨论】:

  • 附带说明,如果未授予将博客中的信息展示到网站上的许可,则可能存在法律问题。
  • 感谢您指出这一点。我相当确定我的朋友与博客的创建者有联系,这将在他们的许可下完成。不过我会仔细检查。

标签: php javascript html


【解决方案1】:

这取决于名称列表的外观,即解析它需要多少智能。但这可能是可以相当容易地使用 Ajax 提取、解析和显示的东西,例如在 jquery flavour 中。

【讨论】:

  • 我不确定什么是高水平或低水平。列表项周围没有唯一标签,所以我几乎必须导入整个内容并将其削减。我想,这部分会相当复杂。 ...无论哪种方式,这听起来都超出了不精通网络开发的人的范围。
  • 我想说这并不比使用 PHP 或 Perl 等服务器端语言更复杂。我相信 SO 社区会支持你解决这个问题,特别是如果你选择使用 JQuery。这里的人 Jquery。 :)
【解决方案2】:

我见过的所有博客都有 RSS 提要。为什么不直接抓取提要?... Google 提供的 javascript 仅用于此目的。

Google Ajax Feed API

【讨论】:

  • 这是一个很好的建议……不过,我不确定它是否适用于这种情况。我的朋友只想要一个特定的、较旧的条目的列表,该条目每隔几个月更新一次,所以 RSS 提要不起作用 - 这会更新为最新条目,对吗?其次,她只想要这个条目中的列表,而不是序言......所以仍然会涉及一些文本处理。
  • 我很确定可以设置一个按日期过滤的 Wordpress RSS 提要。
  • 我知道博主允许您订阅帖子 cmets,它应该包含条目,从那里获取数据应该不需要太多工作
  • 我试过这个,但我无法从 RSS 提要中获取帖子。要么我只得到 cmets,要么得到一个无效的 URL。老实说,如果我收到这个帖子,我什至都不知道该怎么办。
  • 嗯,好吧,你是对的,只有评论提要只包含 cmets =(...我想你必须接受 webdtc 的屏幕抓取想法。
【解决方案3】:

RSS 建议听起来不错。如果您无法在 RSS 中获取它,您可以屏幕抓取内容。

如果你可以用 Javascript 来做,我认为它会遇到与你每天一次的 Perl 脚本和每个加载 asp/php 方法相同的资源问题,因为它仍然需要通过调用 web 来获取 web 内容网站。

另一种选择是使用 asp.net 并启用缓存,这样当其他访问者访问该站点而不是重新访问该页面时,它会提供缓存页面。您可以将其设置为缓存 24 小时左右。我确信其他服务器语言具有类似的功能。基本上,这与您每天一次的 Perl 方法相同,但将其保留在 Web 框架中。

另一个 hacky 解决方案是使用 iframe 并使用 javascript 框住内容,以便它只显示您想要显示的内容。当然,您无法控制 iframe 的格式(背景、字体),如果内容变大或更改位置,您就会遇到问题。

【讨论】:

  • iFrame 似乎是最简单的方法。我在我的选框里有我的 iframe,它正在正确滚动。我现在唯一的问题是以仅显示名称列表的方式构建内容。这可以使用基本的 iframe 属性来完成,还是我需要做其他事情?
  • 没关系 - 我找到了一种使用 javascript 将其缩减为所需内容的方法,但后来我在其他浏览器中对其进行了测试。没那么漂亮。我必须找到另一个解决方案。
猜你喜欢
  • 1970-01-01
  • 2012-04-16
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
  • 2010-11-09
  • 2011-01-30
  • 2011-10-29
  • 2010-12-18
相关资源
最近更新 更多