2

私はウェブサイトを構築していますが、その一部には別のウェブサイトからの公告が表示されます。(通知は公開されており、著作権侵害はありません) 私がしなければならないことは、対象のサイトに新しい通知があるたびに、自分のサイトを自動的に更新することです。Joomla を CMS として使用しています。何か案は?

更新 - 残念ながら RSS フィードはありません :(

よろしくお願いします、 ナンド

4

7 に答える 7

2

サイトをスクレイピングして RSS に変換するツールがいくつかあります (ただし、新しいサイトでその変換を行う方法を指定するには、少し作業を行う必要があります)。たとえば、http://rssscraper.rubyforge.org/を参照してください。

于 2008-12-31T11:31:20.027 に答える
1

yahoo パイプyahoo クエリ言語(yql)を使用して、Web サイトを rss または xml に変換できます。

于 2008-12-31T12:04:30.320 に答える
1

他のサイトが通知用の RSS フィードを提供している場合、最も簡単な方法は、Joomla の RSS プラグインを使用して通知を表示することです。

于 2008-12-31T10:37:19.543 に答える
1

ターゲット用の RSS フィードはまだないので、PHP で作成することができます (IIRC Joomla は PHP で作成されているため、サポートされていると想定します)。リモート Web サイトに接続し、HTML を解析して (ここでは正規表現が役に立ちます)、フィード データを生成するだけです。この出力を RSS として取得し、Joomla サイトに送信したいと考えています。

HTML を解析することの欠点には、Web サイトのレイアウトに非常に大きな依存関係を追加することが含まれます。これは、ホストする RSS を生成する php を「与える」ことで緩和できます。これは、Web サイトに価値を追加し、所有権を譲渡するためです。彼らへのメンテナンスの。

于 2008-12-31T11:13:56.630 に答える
0

私はfrankodwyerとRowlandの回答に同意しましたが、考慮すべきことの1つは、RSSフィードを追加するようにサイト所有者を悩ませることです(まだ活発に開発されている場合は、新しいニュースがあると思います) 。それは最も難しいことではありません。

于 2008-12-31T11:50:22.687 に答える
0

情報を抽出しようとしているWebサイトの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;
    }
}

これは、Webページから情報を抽出する方法の基本的な指標にすぎません。Webページから記事ごとに情報を抽出し、独自の方法でフォーマットできるように開発できます。

お役に立てば幸い

于 2009-02-17T23:32:11.463 に答える
0

「パブリック」とは、明示的にパブリック ドメインに設定されていない限り、著作権フリーを意味するものではないことに注意してください。自動著作権を保持しながら公開されているものがたくさんあります。

于 2008-12-31T13:07:02.940 に答える