我需要构建简化的网站下载器。它将基本查看网站中的链接并递归下载html文件到本地目录。哪个数据结构最适合这个?我知道我必须实现某种深度优先搜索算法,核心Java中是否有适合我的任务的数据结构库,并且会减少我的编码量? (我对Java非常陌生)谢谢!在Java中构建网站下载器的数据结构
0
A
回答
0
我觉得以下两种方法可以帮到你.. 你所要做的是提供一个字符串数组链接,它会下载根目录中的所有页面。 好吧,这段代码可以帮助你部分,如果你只是想下载页面。
public static void downloadPage(String[] pageLink) {
URL url;
InputStream is = null;
DataInputStream dis;
String line;
StringBuilder builder = new StringBuilder();
builder.append("");
try {
for (int i = 0; i < pageLink.length; i++) {
url = new URL(pageLink[i]);
is = url.openStream();
dis = new DataInputStream(new BufferedInputStream(is));
while ((line = dis.readLine()) != null) {
builder.append(line + "\n");
}
savePage(i + ".html", builder.toString());
builder.setLength(0);
}
} catch (MalformedURLException mue) {
mue.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
try {
is.close();
} catch (IOException ioe) {
}
}
}
public static void savePage(String fileName, String text) {
PrintStream out = null;
try {
out = new PrintStream(new FileOutputStream(fileName));
out.print(text);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (out != null)
out.close();
}
}
2
我需要建立一个简单的网站下载。它将基本查看网站中的链接并递归下载html文件到本地目录。
存在许多用于执行此操作的命令行工具和图形界面工具, wget,但是如果你自己坚持这样做,那么继续阅读。
哪个数据结构最适合这个?我知道我必须实现某种深度优先搜索算法,核心Java中是否有适合我的任务的数据结构库,并且会减少我的编码量? (我对Java非常陌生)谢谢!
数据结构和算法是两个不同的东西。哪种数据结构和算法最适合您的目的取决于您的数据规模和其他因素。如果这是抓取少量链接的小应用程序,则可能需要使用递归方法下载每个页面并解析链接的页面以供下次下载。
对于大规模的网络爬虫,您可能想看看MapReduce和一些分布式存储数据并同时下载它们的方法。
有些工具可能是有用的:
- Apache的通用IO,FileUitls.copyURLToFile功能
- 阿帕奇共同http-client
- Jsoup解析HTML
0
上的其他建议上面,你可能也想看看ExecutorService和Java Concurrency,因为你可能想要线程下载以使其更快。
相关问题
- 1. 在Java中创建类似于数据结构的结构
- 2. 在Java中创建数据结构
- 3. JS中的网站加载结构
- 4. 如何在Java中构建互联网下载管理器?
- 5. 网站数据库结构 - 最好最有效的结构
- 6. 在Java中构建增量树的数据结构
- 7. 在管道中下载构建结果
- 8. 在Java中创建网络数据包分层结构
- 9. 没有数据库的小型网站的网站结构
- 10. 网数据结构
- 11. 在Visual Studio下构建网站
- 12. ASP.NET网站结构
- 13. Java数据结构
- 14. Java数据结构
- 15. 为我的网站创建正确的数据库结构(mysql)
- 16. 网站结构与控制器=在URL?
- 17. 网站结构/体系结构
- 18. 建立拍卖网站的结构?
- 19. 如何在UWP中构建下载器?
- 20. Drupal分析网站结构/逆向工程师网站结构
- 21. asp.net网站和数据库在visual studio中的正确结构
- 22. 在Java中使用的数据结构
- 23. 构建新网站
- 24. Java - 利用可用的数据结构或创建新的数据结构
- 25. 灵活的网站结构
- 26. 树形网站的结构?
- 27. 网站的分支结构
- 28. Django网站的结构
- 29. 的Java HasMap数据结构
- 30. Pythonic构建数据结构的方法
我的代码和你非常相似,哈哈..无论如何,谢谢! – Belgarion