0

http://code.google.com/p/crawler4j/のクローラー コードを使用しています。

今、私がやろうとしているのは、別のクラスから MyCrawler クラスで見つかったすべての URL にアクセスすることです。

クローラーを次のように開始します。

// * Start the crawl. This is a blocking operation, meaning that your code
// * will reach the line after this only when crawling is finished.
controller.start(MyCrawler.class, numberOfCrawlers); 

「return」を使用して URL を取得しようとすると、次のエラーが発生します。

The return type is incompatible with WebCrawler.visit(Page)

タイプを「void」に変更するように求められますが、もちろん、私はしたくありません。

これが私が問題を抱えている機能です:

@Override
public  String visit(Page page) {          
        url = page.getWebURL().getURL();
        System.out.println("URL: " + url);

        if (page.getParseData() instanceof HtmlParseData) {
                HtmlParseData htmlParseData = (HtmlParseData) page.getParseData();
                String text = htmlParseData.getText();
                String html = htmlParseData.getHtml();
                List<WebURL> links = htmlParseData.getOutgoingUrls();

                System.out.println("Text length: " + text.length());
                System.out.println("Html length: " + html.length());
                System.out.println("Number of outgoing links: " + links.size());

              return url;  

        }

ゲッターも使ってみましたが「ブロッキング操作」なのでうまくいきません。私はアイデアが不足しています。

4

1 に答える 1