2016-02-02 21 views
-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; 

    } 

} 

回答

0

你可以利用Apache POI。它支持創建Excel文件(xsl,xslx)。 Here你可以找到關於使用的XSSF和HSSF格式的更多信息。可以找到代碼示例here