0

私の仕事は、与えられたリンクの実際のプレスリリースリンクを見つけることです。たとえば、http://www.apple.com/pr/と言います。

私のツールは、そのサイトで見つかった他の広告リンク、タブリンク(またはその他)を除いて、上記のURLからプレスリリースリンクだけを見つける必要があります。

以下のプログラムが開発され、これがもたらす結果は、特定のWebページに存在するすべてのリンクです。

以下のプログラムを変更して、特定のURLからプレスリリースリンクのみを検索するにはどうすればよいですか?また、与えられた場合、任意のプレスリリースURLからプレスリリースリンクを識別するように、プログラムを汎用的にしたいと思います。

import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.sql.*;
import org.jsoup.nodes.Document;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Element; 
public class linksfind{
public static void main(String[] args) {
    try{
         URL url = new URL("http://www.apple.com/pr/");
         Document document = Jsoup.parse(url, 1000); // Can also take an URL.
         for (Element element : document.getElementsByTag("a")) {
             System.out.println(element.attr("href"));}
             }catch (Exception ex){ex.printStackTrace();}
}
}
4

4 に答える 4

4

これを達成するための決定的な方法はないと思います。'press'、'release'、'pr'などの可能なすべてのキーワードのセットを作成し、URLを一致させて、正規表現などを使用してキーワードを見つけることができます。これが正しいかどうかは、キーワードのセットがどれだけ包括的かによって異なります。

于 2010-08-12T14:30:37.460 に答える
3

今日のサイトを見てください。見たリンクをファイルにキャッシュします。明日サイトを見てください。新しいリンクはニュース記事へのリンクですよね?あなたは間違った結果を得るでしょう-一度-彼らがあなたの周りのページの残りの部分を変えるときはいつでも。

ご存知のとおり、提供されているRSSフィードを使用するだけで、求めていることを正確に実行できるように設計されています。

于 2010-08-12T14:31:02.840 に答える
2

「プレスリリースリンク」を定義する属性を見つける必要があります。そのサイトの場合、「/ pr / library /」を指すと、それがAppleのプレスリリースであることを示します。

于 2010-08-12T14:31:41.420 に答える
2

HTMLソースコードを見てください。通常のウェブブラウザでページを開き、右クリックして[ソースの表示]を選択します。これらのリンクを一意に識別するには、HTMLドキュメントツリーでパスを見つける必要があります。

それらはすべて、<ul class="stories">要素内の<div id="releases">要素に収容されています。その場合、適切なCSSセレクターはになります"div#releases ul.stories a"

次のようになります。

public static void main(String... args) throws Exception {
    URL url = new URL("http://www.apple.com/pr/");
    Document document = Jsoup.parse(url, 3000);
    for (Element element : document.select("div#releases ul.stories a")) {
        System.out.println(element.attr("href"));
    }
}

これにより、現時点で、まさにあなたが望むものが得られます。

/pr/library/2010/07/28safari.html
/pr/library/2010/07/27imac.html
/pr/library/2010/07/27macpro.html
/pr/library/2010/07/27display.html
/pr/library/2010/07/26iphone.html
/pr/library/2010/07/23iphonestatement.html
/pr/library/2010/07/20results.html
/pr/library/2010/07/19ipad.html
/pr/library/2010/07/19alert_results.html
/pr/library/2010/07/02appleletter.html
/pr/library/2010/06/28iphone.html
/pr/library/2010/06/23iphonestatement.html
/pr/library/2010/06/22ipad.html
/pr/library/2010/06/16iphone.html
/pr/library/2010/06/15applestoreapp.html
/pr/library/2010/06/15macmini.html
/pr/library/2010/06/07iphone.html
/pr/library/2010/06/07iads.html
/pr/library/2010/06/07safari.html

CSSセレクターの詳細については、JsoupのマニュアルとW3CSSセレクターの仕様を参照してください。

于 2010-08-13T19:12:40.023 に答える