2012-07-31 1 views
0

Je crée un analyseur HTML qui récupère le code HTML d'une URL donnée, trouve le menu de navigation html et le place dans une chaîne. Les URL dans le code HTML qui sont copiées dans la chaîne ont besoin d'une partie de l'URL ajoutée (la partie "www.stackoverflow.com"). Comment puis-je rechercher les URL existantes dans la chaîne et y ajouter la partie manquante afin qu'elles fonctionnent.correction d'URL analysées dans java

Les URL du String sont de la forme:

<a href="/qestions/11744851.cfm"> 

et je dois les faire sous la forme suivante:

<a href="www.stackoverflow.com/questions/11744851.cfm"> 
+0

les URL dans la chaîne sont sous la forme « < a href = "/ qestions/11744851.cfm"> "et j'ai besoin de le faire " – user1423793

+0

Quel code Java utilisez-vous pour lire sur le site? ? –

+0

URL page = nouvelle URL ("http://www.stackoverflow.com"); URLConnection connection = page.openConnection(); alors j'ai essayé de le remplacer par subString.replaceAll (" user1423793

Répondre

1

Essayez d'utiliser cette expression régulière avec la méthode ReplaceAll():

str = subString.replaceAll("<a href=\"(.*)\">", "<a href=\"http://www.stackoverflow/$1\">"); 
1

Si le XHTML est XML valide, la meilleure façon est pour l'analyser en XML et utiliser XPath (par exemple/body/div/a @ href, où/body/div est le chemin vers la section de menu en HTML) Il existe également un projet appelé HTMLParser (http: //htmlparser.sourceforge. net /), vous pouvez essayer (selon la page, il a 'link extracti sur, pour l'exploration de pages Web ou la collecte d'adresses électroniques »; mais je ne l'ai jamais utilisé, donc je ne peux pas aider beaucoup). Si d'autre part le HTML est tout sauf valide, vous pouvez utiliser http://ccil.org/~cowan/XML/tagsoup/ - cela pourrait marcher, ou pas, sur les sites Web que nous avons essayés, cela a plutôt bien fonctionné.

Edit: ajout d'une partie manquante peut être effectuée à l'aide concaténation simple, après avoir trouvé des pièces intéressantes

Questions connexes