2012-09-05 6 views
0

J'utilise Jsoup. Je fais un get document= connect.get(); et obtenir la page html.Récupère le lien hypertexte du site Web

maintenant je l'écris à un texte (chaîne).

J'ai des utilisateurs qui remplissent ces pages. Je connais chaque nom d'utilisateur. Ces pages ont le nom d'utilisateur. Je suis capable de faire un string.contains ("nom d'utilisateur") pour vérifier si l'utilisateur est présent ou non.

Maintenant, ma question est la suivante: J'ai des utilisateurs avec là noms

Tables

Listes Ordonnées

listes à puces

dans le corps

Mais dans tous ces cas, ils avoir dans le format suivant: Exemple

<li><a href="http://university.xxx.students.com/grade9/john/117429">2012 academic record</a></li> 

certains sont dans le tableau et tous ..

Dans l'exemple que je connais le nom de l'étudiant = john. comment puis-je obtenir toutes les urls?

==

+0

Je suppose pas toutes les URL sont comme ceci: 'http://university.xxx.students.com/grade9/ ' correcte? –

+0

oui. certains sont dans des tableaux, certains étudiants ont - href = "http://university.xxx.students.com/grade9/john/117429"> John

+0

Je regarde grept la page. s'il y a un nom d'étudiant dans le lien (ou) le texte extrait le lien. –

Répondre

0

Que diriez-vous ceci:

Document doc = Jsoup.connect(url).get(); 
    Elements links = doc.select("a[href]"); 

    for (Element link : links) { 
     if(link.attr("abs:href").contains(studentName) || link.text().contains(studentName)){ 
      studentLinkList.add(link.attr("abs:href")); 
     } 
    } 
1

Vous pouvez utiliser regex pour cela:

Elements elements = document.select("[href~=(?is)http://university\\.xxx\\.students\\.com/grade9/(.+?)/[0-9]+?]")

plus abstraite: document.select("a[href~=regex]")

si vous connaissez déjà le nom que vous pouvez remplacer (.+?), par exemple .:

Elements elements = document.select("[href~=(?is)http://university\\.xxx\\.students\\.com/grade9/" + name + "/[0-9]+?]")

+0

merci ollo pour la page d'entrée reply.my est une grande page avec beaucoup de données et le lien que j'ai fourni est un exemple (university.xxx.students.com/grade9/),... J'ai une page avec hrefs/li/..et tout. dans un si je connais le nom de l'étudiant. donc quand jamais je vois ce studentname je veux obtenir le lien associé (le href) qui contient ceci (ou) si le nom d'étudiant est là dans le texte obtiennent le href associé –

+0

Vous pouvez étendre le select avec un contrôle supplémentaire comme '*: contient (nom) '. Cela trouvera n'importe quel élément qui contient le nom, là vous pouvez obtenir l'attribut 'href'. – ollo