-1
因此,下面的代碼在運行時會列出所有到網站的url鏈接以及每個鏈接集來自的網頁的url。那麼,如何能夠將這些鏈接存儲在某個地方,如說Excel文件或任何類型的文件,如果它不能成爲Excel?如何將java結果放入文件(即Excel)
公共類履帶{
/**
* @param args the command line arguments
* @throws java.io.IOException
*/
public static void main(String[] args) throws IOException {
Set<String> visitedUrls = new HashSet<>();
String url = "http://www.claflin.edu";
crawl(url, visitedUrls);
private static void crawl(String url, Set<String> visited) throws IOException {
if(url.isEmpty() || visited.contains(url)) {
return;
}
print("Fetching %s...", url);
visited.add(url);
Document doc;
try {
doc = Jsoup.connect(url).timeout(10000).get();
} catch (UnsupportedMimeTypeException e) {
System.out.println("Unsupported Mime type. Aborting crawling for URL: " + url);
return;
} catch (MalformedURLException e) {
System.out.println("Unsupported protocol for URL: " + url);
return;
} catch (HttpStatusException e) {
System.out.println("Error (status=" + e.getStatusCode() + ") fetching URL: " + url);
return;
} catch (IOException e) {
System.out.println("Timeout fetching URL: " + url);
return;
}
Elements media = doc.select("[src]");
Elements imports = doc.select("link[href]");
Elements links1 = doc.select("a[href$=\".pdf\"]");
Elements links = doc.select("a[href]");
print("\nOther Links: (%d)", links1.size());
for (Element link: links1){
print(" * a: <%s> (%s)", link.attr("abs:href"), trim(link.text(), 35));
}
print("\nLinks: (%d)", links.size());
for (Element link: links)
{
print(" * a: <%s> (%s)", link.attr("abs:href"), trim(link.text(), 35));
}
for(Element link : links) {
String href = link.attr("abs:href");
URL hrefURL = null;
try {
hrefURL = new URL(href);
} catch (MalformedURLException e) {
//nothing
}
if(hrefURL != null && hrefURL.getHost().equals(new URL(url).getHost())) {
crawl(href, visited);
}
}
}
private static void print(String msg, Object... args) {
System.out.println(String.format(msg, args));
}
private static String trim(String s, int width) {
if (s.length() > width)
return s.substring(0, width-1) + ".";
else
return s;
}
}