gpt4 book ai didi

Java 返回类型与 WebCrawler.visit(Page) 不兼容

转载 作者:行者123 更新时间:2023-12-01 13:12:45 25 4
gpt4 key购买 nike

我正在使用 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;

}

我也尝试过使用 getter,但由于它是一个“阻塞操作”,所以它不起作用。我的想法已经用完了。

最佳答案

如果更改方法签名,则无法覆盖方法。如果您更改签名,您将创建一个新方法。如果您想要的只是访问过的 url 列表,请尝试将它们存储在 ArrayList 中并创建一个返回列表的 getter,而不是返回 url。

关于Java 返回类型与 WebCrawler.visit(Page) 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22723163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com