Java 让网络爬虫在本地下载多个网页

Java 让网络爬虫在本地下载多个网页,java,web-crawler,Java,Web Crawler,我想我的网络爬虫下载所有浏览的网址的本地。在这一分钟,它将下载它访问的每个网站,然后覆盖访问的每个网站中的本地文件。爬虫程序从www.bbc.co.uk开始,下载该文件,然后当它点击另一个文件时,会用下一个URL覆盖该文件。我怎样才能把它们下载到单个文件中,这样我就有了一个收藏?我有下面的代码,但我不知道从这里去哪里。任何建议都很好。括号内的URL(URL)是一个字符串,用于处理所有浏览过的网页 URL url = new URL(URL); Buff

我想我的网络爬虫下载所有浏览的网址的本地。在这一分钟,它将下载它访问的每个网站,然后覆盖访问的每个网站中的本地文件。爬虫程序从www.bbc.co.uk开始,下载该文件,然后当它点击另一个文件时,会用下一个URL覆盖该文件。我怎样才能把它们下载到单个文件中,这样我就有了一个收藏?我有下面的代码,但我不知道从这里去哪里。任何建议都很好。括号内的URL(URL)是一个字符串,用于处理所有浏览过的网页

         URL url = new URL(URL);
             BufferedWriter writer;
                 try (BufferedReader reader = new BufferedReader
                    (new InputStreamReader(url.openStream()))) {
                            writer = new BufferedWriter
                          (new FileWriter("c:/temp/data.html", true));
                            String line;
                            while ((line = reader.readLine()) != null) {
                                //System.out.println(line);
                            writer.write(line);
                            writer.newLine();
                            }        
                        }
                             writer.close();

您需要为文件指定一个唯一的名称

您可以将它们保存在不同的文件夹中(每个网站有一个根目录)


或者您可以给它们一个唯一的名称(例如使用计数器)。

给文件一个唯一的名称,如:
“c:/temp/data”+String.valueOf(System.currentTimeMillis())+“.html”
这是否意味着所有下载的文件都将仅保存当前时间的值?我所需要的只是一个它所点击的网页的集合,它们单独保存。我以为我离得这么近,但却离得这么远哈哈:)这真是一件乐事!!!有没有办法把你的答案标记为正确的?我真的没有太多地使用过stakeoverflow。非常感谢,我很高兴听到它工作,不需要使用
系统。currentTimeMillis()
,您可以使用任何唯一值。我已将我的解决方案作为评论发布,您不能接受它作为答案@DavidorenZomarino answer也有同样的想法,您可以接受它。我试图添加字符串URL作为文件名,但它出现了此错误。。不过非常感谢:)