# Java WebCrawler



## quniko (24. Apr 2010)

Moin Leute,
Ich habe mir einen Kleinen Java Webcrawler gebaut, der alle Links mir von einer Homepage ausgiebt.
Ich habe auch hin bekommen, dass wenn zwischen den html Tags <A> & </A>
Text steht, das der mir ausgegebn wird.

Ich würde nun aber auch gerne HTML code ausgeben wenn der zwischen den Tags steht?

Hier mein script


```
URL url = null;
			try {
				url = new URL( "http:" );
			} catch (MalformedURLException e2) {
				// TODO Auto-generated catch block
				e2.printStackTrace();
			}
		     URLConnection con = null;
			try {
			con = url.openConnection();
			String data = URLEncoder.encode("user_choice", "UTF-8") + "=" + URLEncoder.encode("Enter", "UTF-8"); 
			data += "&" + URLEncoder.encode("page", "UTF-8") + "=" + URLEncoder.encode(""+1, "UTF-8");
			con.setDoOutput(true); 
			OutputStreamWriter wr = new OutputStreamWriter(con.getOutputStream());
			wr.write(data); wr.flush();
			
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		        
		     BufferedReader br = null;
			try {
				br = new BufferedReader( new InputStreamReader( con.getInputStream() ) );			
			} catch (IOException e) {
				e.printStackTrace();
			}
		     	
		      HTMLEditorKit editorKit = new HTMLEditorKit();
		      HTMLDocument htmlDoc = new HTMLDocument();
		      htmlDoc.putProperty( "IgnoreCharsetDirective", Boolean.TRUE );
	        try {
				editorKit.read(  br, htmlDoc, 0 );
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (BadLocationException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

	        String[] ALink = new String[500]; 
	        String[] AText = new String[500]; 
	       int a = 0;
	        {// LINKS
	        	int length;
	        	String text = null;
	            HTMLDocument.Iterator iter = htmlDoc.getIterator( HTML.Tag.A );
	            while( iter.isValid() )
	            {
	                //System.out.println( "a: " + iter.getAttributes().getAttribute( HTML.Attribute.HREF ) );
	                length = iter.getEndOffset()-iter.getStartOffset();
	                try {
						text = htmlDoc.getText(iter.getStartOffset(), length);// hier lese ich den Test aus, aber ich möchte ja den HTML code :)
					} catch (BadLocationException e) {
						e.printStackTrace();
					}
					 //System.out.println( "->: " + text );
					
					 ALink[a] =  (String) iter.getAttributes().getAttribute( HTML.Attribute.HREF );
					 AText[a] =  text;
					
					 a++;
	                iter.next();
	            }
	        }
```

Vielen Dank


----------



## MatthiasB (21. Dez 2010)

Nette Klasse.

Ich habe ein paar Open-Source Java-Libaries fürs Web-Crawling zusammengestellt.

Open-Source Java Crawler und Spider


----------

