【发布时间】:2014-04-16 00:28:14
【问题描述】:
我正在创建一个网络爬虫,我只是读取页面的 html 并存储到一个字符串中。然后我在 html 中找到了所有的锚标记,并将它们存储到一个名为 anchorTags 的 ArrayList 中。我现在需要处理数组列表中每个字符串的“a href=" 部分。为此,我编写了以下代码;但是,由于某种原因,我得到了一个出界异常。请注意,我只需要使用循环、数组列表来执行此操作:
ArrayList<String> parsedLinks = new ArrayList<String>();
String storeHTML = "";
for(int i = 0; i < anchorTags.size(); i++) {
String anchorTag = anchorTags.get(i);
int hrefIndex = anchorTag.indexOf("a href=");
if (hrefIndex > -1) {
int beginQuote = anchorTag.indexOf("\"", hrefIndex);
int EndQuote = anchorTag.indexOf("\"", beginQuote +1);
if (EndQuote > beginQuote) {
storeHTML.substring(beginQuote +1, EndQuote);
}
}
}
parsedLinks.add(storeHTML);
System.out.println(parsedLinks);
return parsedLinks;
}
【问题讨论】:
-
"我遇到了一个越界异常" 这个异常会告诉你到底出了什么问题。假设您已经看过它并且仍然很难过,您不认为发布例外以帮助他人帮助您很重要吗?
-
异常是:线程“main”中的异常 java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:WebCrawler.WebCrawler.linkParser( WebCrawler.java:127) 在 WebCrawler.WebCrawler.main(WebCrawler.java:28)
-
好的开始:你的代码中的那些行号在哪里?
-
127 是我创建子字符串的地方。 28 是我在 main 方法中引用返回值的地方
标签: java html parsing arraylist