Parser erstellen

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo zusammen,

Habe eine Frage bezüglich eines HTML Parsers. Ich möchte folgenden Teil extrahieren
Code:
<TD class="h2" valign="top" width="100%"><strong class="h2">Zeit&berschreitung[/b]</TD>
genauer gesagt den Text zwischen strong.

Ich verwende den HTML-Parser von sourceforge.net.

Wenn ich einen Link extrahieren will muss der Konstruktor folgendermaßen aussehen.
Code:
 new HasAttributeFilter("a");

Wie muss er bei meinem Problem aussehen? Was muss anstelle des "a" stehen oder muss das ganz anders gemacht werden?

Kann mir da bitte jemand Helfen? Danke schon mal!
 
Danke, hab das auch schon versucht und dann bekomm ich folgendes Ergebnis

(10891[171,18],10899[171,26]): strongTag (11369[178,18],11377[178,26]): strongTag (21580[381,4],21588[381,12]): strong

aber ich wollt doch den Text
:bahnhof:
 
meintest du das oder was sonst? Wenn du mir sagst wo ich was nachschauen kann, nur sagen
 
kann mir jemand hilfe geben wie ich das wort dazwischen abfangen kann?
 
Anonymous hat gesagt.:
Danke, hab das auch schon versucht und dann bekomm ich folgendes Ergebnis

(10891[171,18],10899[171,26]): strongTag (11369[178,18],11377[178,26]): strongTag (21580[381,4],21588[381,12]): strong

aber ich wollt doch den Text
:bahnhof:

wo kriegst du das? poste mal den genauen methoden aufruf
 
Hallo,
also das ist der Code
Code:
private Back_Erg gefundener_link (NodeList nliste, Back_Erg erg, Integer tiefe)
	{
		SimpleNodeIterator snix;
		SimpleNodeIterator snix2;
		LinkTag myTag;
		TagNode myTag2;	
		NodeList klist = null;
		NodeList schriftlist = null;
	/* die Tiefe  von 4 ist noch nicht erreicht
	 * Abbruchbedingung von der Rekursion		*/
		if (tiefe != 0)
		{
			/*und auch nur dann wenn das ziel (die SEite
			 * mit ergebnissen noch nicht gefunden ist	*/
			if (erg.get_gef() ==  0)
			{
				System.out.println("Tiefe:" + tiefe);
				System.out.println("nnnnliste" + nliste);
				/*für diese erste seite alle Links extrahieren */
				for (snix = nliste.elements(); snix.hasMoreNodes();)
				{					
				/*für jeden Knotenpunkt (gefundener Link)
				 * überprüfe ob es die seite mit dem suchwort 
				 * gibt. erkennbar durch einen Filter nach den 
				 * überschriften auf der SEite. Lautet eine Überschrift						 
				 * * 'Ihre Aktion' dann bin ich auf der gesuchten seite*/
					myTag = (LinkTag)snix.nextNode();
					//href = myTag.getLinkText();
					/*myTag.extractLink <-- eigentlicher Link*/
				
					System.out.println("MYTAG extract Link : " + myTag.extractLink());
					try 
					{
						/*alle Links von den Seiten holen*/
						klist = links_holen(new URL (myTag.getLink()),new NodeClassFilter(LinkTag.class));
						System.out.println(new URL (myTag.getLink()));
						/*wenn der Link + die suche existiert*/
						try 
						{
							schriftlist = links_holen(new URL (myTag.getLink() + suche),schrift_filter);
							//System.out.println("ssssssssss:" + schriftlist );
							for (snix2 = schriftlist.elements(); snix2.hasMoreNodes();)
							{
								myTag2= (TagNode)snix2.nextNode();
								System.out.println("myTag2" + myTag2);//.getAttributesEx());
							}
						} 
						catch (MalformedURLException e) 
						{
							e.printStackTrace();
						}
					} 
					catch (MalformedURLException e) 
					{
						e.printStackTrace();
					}
				}// ende for
			}//ende if
		//System.out.println(klist);
		tiefe = tiefe - 1;
		System.out.println(tiefe);
		System.out.println("-------------------------------");
		System.out.println("-------------------------------");
		erg = gefundener_link(klist, erg, tiefe);
		return erg;
		}//if
		else
		{
			return erg;
		}
	}//ende FUNKTION
also das ist die rekursion und da drinne zeile 45 will ich den Inhalt sehen, bekomm aber nur den komischen code als Ausgabe, oder eben die Tags. Sonst nix.
Wenn jemand ne Idee hat bitte mitteilen, bin am verzweifeln....
 
Bzw. jetzt sieht es so aus
Code:
myTag2Tag (11098[171,18],11106[171,26]): strong
myTag2Tag (11609[178,18],11617[178,26]): strong
myTag2Tag (21938[381,4],21946[381,12]): strong
 
Hallo zusammen,
hab den Code nochmal umgeschmissen und hab jetzt nur noch das Problem, wenn es auf einer Internetseite kein TitelTag gibt. Wie kann ich das abfangen? Hab schon mit Exceptions versucht, aber das funktioniert irgendwie auch nicht. Wenn es keinen TitelTag gibt, was für einen Wert wird dann in den Tag geschrieben? Denn wenn ich es ausgebe, steht nix drin.... bzw. die Fehlermeldung kommt.
Danke schonmal
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben