【发布时间】:2015-03-29 11:38:25
【问题描述】:
我正在创建一个通过 .edu 域进行爬网的网络爬虫。我正在使用 jsoup 解析我的 html 文件以获取锚链接。然后我将链接添加到 HashSet,因为我不想有重复的 url。但是,当我打印出我的 HashSet 时,我有几个 url 的重复项。
我将我的集合声明为成员函数
private Set <String> url = new HashSet<String>();
public void jsoupParse(String htmlFile, String baseUrl){
try{
File input = new File(htmlFile);
Document doc = Jsoup.parse(input, "UTF-8", baseUrl);
Elements links = doc.select("a[href]");
for (Element link : links) {
String linkHref = link.attr("abs:href");
linkHref.trim();
url.add(linkHref);
}
printCollection();
}
catch(IOException e){
e.printStackTrace();
}
}
在我的种子文件中,我有 4 个 url,所以我有 4 个 htmlFiles。当我打印出来时,我得到了 659 个条目。下面是我的输出示例。例如,这个特定的 url 被打印了四次。 http://diversity.mit.edu/diversity-summit-2015/
我的输出:
http://web.mit.edu/admissions/
http://diversity.mit.edu/
http://newsoffice.mit.edu
http://whereis.mit.edu
http://diversity.mit.edu/diversity-summit-2015/
http://diversity.mit.edu/event/mlk-celebration-2015/
http://mit.edu/site/?ref=mithomepage
http://ki.mit.edu
http://web.mit.edu/athletics/www/
http://twitter.com/mit
http://libraries.mit.edu/
http://web.mit.edu/faculty/
....
http://newsoffice.mit.edu
http://strategiccommunications.ucr.edu/
http://hvrd.me/GmV2x
http://diversity.mit.edu/diversity-summit-2015/
http://ucr.edu/
http://hvrd.me/IaiDY
http://ki.mit.edu
http://stanford.edu/academics/programs
http://news.stanford.edu/news/2015/january/jones-students-econversation-012815.html
http://harvard.edu/#skip
http://campusmap.ucr.edu/?loc=HINHL
【问题讨论】:
-
你能显示包含重复的输出吗?
标签: java duplicates hashset duplicate-removal