トラックバック先のURLの抽出でループを避けたい
ブログのトラックバック先のURLを取得するプログラムを作っています。
例えば、ブログAの記事に、B,Cのブログがトラックバックをして
ブログBにブログaが、ブログCにはブログbがトラックバックをしていて、
さらにブログaにはブログ1がトラックバックをしていたとします。
このとき、ブログB,C,a,b,1のURLを取得するプログラムをこちらのご回答を参考にしながら、以下のように作りました。
public class BlogTB {
public static void main(String[] args) {
ArrayList al = new ArrayList();
String url = args[0];
addUrl(al, url);
String[] TBURL = (String[])al.toArray(new String[0]);
for(int i = 0 ; i < TBURL.length ; i++) {
System.out.println(TBURL[i]);
}
}
private static void addUrl(ArrayList al, String url) {
al.add(url);
String[] TBURL = HTMLTB.getHTMLtb(url);
if (TBURL[0].equals("")) return;
for(int i = 0 ; i < TBURL.length ; i++) {
addUrl(al, TBURL[i]);
}
}
}
HTMLTB.getHTMLtbでは、トラックバック先のURLを取得する処理を行い、その一覧をTBURLに格納します。
この操作を再帰的に繰り返して、トラックバック先のURLを取得させています。
ここで、もし上記のケースで、
ブログ1がブログaにトラックバックをしていた場合(トラックバック返し)や、
ブログ1がブログAにトラックバックをしていた場合などでは、
上記のプログラムを走らせると、ループになっていまいます。
登録しようとしているurlがalに既に登録済みかどうかのチェックなど、
重複するURLをTBURLに登録しないようにして、
ループを防ぐためには、プログラムをどのように改正すればいいでしょうか?
よろしくお願いします。
お礼
ん~そうですね。ありがとうございました。