使网络爬虫在本地下载多个网页
Making web crawler download multiple web pages locally
我希望我的网络爬虫在本地下载所有浏览过的 URL。此时它会下载它访问的每个站点,然后覆盖每个访问过的网站中的本地文件。爬虫从 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();
您需要为您的文件指定一个唯一的名称。
您可以将它们保存在不同的文件夹中(每个网站一个根目录)。
或者您可以给它们一个唯一的名称(例如使用计数器)。
我希望我的网络爬虫在本地下载所有浏览过的 URL。此时它会下载它访问的每个站点,然后覆盖每个访问过的网站中的本地文件。爬虫从 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();
您需要为您的文件指定一个唯一的名称。
您可以将它们保存在不同的文件夹中(每个网站一个根目录)。
或者您可以给它们一个唯一的名称(例如使用计数器)。