2

我正在建立一个网站,其中一个部分将显示来自不同网站的公告。(通知是公开的,没有侵犯版权)我需要做的是在目标站点上有新通知时自动更新我的站点。我使用 Joomla 作为我的 CMS。有任何想法吗?

更新 - 不幸的是没有 RSS 提要 :(

谢谢和问候, 南德

4

7 回答 7

2

有一些工具可以抓取站点并将其转换为 RSS(但是,您必须做一些工作来指定如何为新站点进行转换)。例如参见http://rssscraper.rubyforge.org/

于 2008-12-31T11:31:20.027 回答
1

如果其他站点为他们的通知提供 RSS 提要,最简单的方法是使用 Joomla 的 RSS 插件来呈现它们。

于 2008-12-31T10:37:19.543 回答
1

由于您的目标还没有 RSS 提要——您可以用 PHP 编写一个(IIRC Joomla 是用它编写的,所以我假设支持)。您只需要连接到远程网站,并解析 HTML(正则表达式是您的朋友)以生成提要数据;我倾向于将此输出作为 RSS,然后进入您的 Joomla 站点。

解析 HTML 的缺点包括对他们的网站布局添加了极大的依赖——这可以通过“给”他们生成 RSS 供他们托管的 php 来缓解,因为这会为他们的网站增加价值,以及转移所有权对他们的维护。

于 2008-12-31T11:13:56.630 回答
1

您可以使用yahoo 管道和/或yahoo 查询语言(yql)将网站转换为 rss 或 xml

于 2008-12-31T12:04:30.320 回答
0

需要注意的是,“公共”并不意味着无版权,除非明确置于公共领域。有很多东西是公开的,同时保留了它们的自动版权。

于 2008-12-31T13:07:02.940 回答
0

如果您可以查看您尝试从中提取信息的网站的 HTML 代码,并且他们的新闻文章实体具有逻辑命名系统,您应该能够使用 fopen 命令,例如。

<?php
$handle = fopen("http://www.example.com/", "r");
?>

如果文章代码的布局如下所示,则使用它从文章代码中提取的信息:

<div class="post" id="post-16283">
    <div class="postheader">
        <h1 id="article-title">Test Article Code</h1>
    </div>
    <div class="postcontent">
        This is the article text
    </div>
    <div class="postfooter">
        Copyright Information
    </div>
</div>

然后,您可以使用以下 php 代码显示文章的所有标题:

if (preg_match_all("#<div class="postheader"(.*?)</div>#s", $handle, $matches, PREG_PATTERN_ORDER) > 0) {
    foreach ($matches[0] as $match) {
        echo $match;
    }
}

这只是如何从网页中提取信息的基本指标。它可以被开发,因此您可以从网页上逐条提取信息,然后甚至以您自己的方式对其进行格式化。

希望有帮助

于 2009-02-17T23:32:11.463 回答
0

我同意 frankodwyer 和 Rowland 的回答,但要考虑的一件事是让网站所有者(如果它仍在积极开发,我假设如果有新消息)添加一个 RSS 提要。这不是最难做的事情。

于 2008-12-31T11:50:22.687 回答