Bing 検索を開始し、結果の URL をいくつか取得し、それらを開始点として使用して他のページを走査し、それらからリンクを解析してリストに追加します。
私が抱えている問題は、同じドメインに 2 回アクセスしたくないということです。同じ URL にアクセスしないようにすることはできますが、ページに Web サイトの別の部分 (About ページなど) へのリンクがある場合はできません。現在、Jsoup を使用してドキュメントから URL を解析するたびに URL を追加する LinkedList があります。また、既にアクセスした URL を格納するための HashMap があります。したがって、次のような基本的な「if」で設定しました。
if(!urlsVisited.containsKey(url))
{
urlsToVisit.add(url);
urlsVisited.put(url, url);
}
これは、各ページのリンクを取得する for ループにあります (現在、4 つのページを処理する 4 つのスレッド)。
これにより、「 http://www.stackoverflow.com 」のようなものが 2 回追加されなくなりますが、「 http://www.stackoverflow.com/questions/ask 」に遭遇した場合は機能しません。
StackOverflow (たとえば) から 1 つのリンクを追加して、そのドメインで作業を完了したいと考えています。何か案は?
結果を解析するために Java で Jsoup API を使用しています。