2016-08-03 7 views
1
<article itemprop="articleBody"> 
    <p channel="wp.com" class="interstitial-link"> 
    <i> 
     [<a href="www.URL.com" shape="rect">Link Text</a>] 
    </i> 
    </p> 
<article> 

Wie würde ich die URL und Link-Text mit Jsoup aus diesem HTML-Dokument abrufen? ich es will wie dieserWie URL von Link-Tags mithilfe von Jsoup abrufen

suchen "Link Text [URL]"

Edit: Ich habe nur die Links innerhalb

<article itemprop="articleBody"> ... <article> 

nicht die gesamte Seite abrufen möchte. Außerdem möchte ich alle Links innerhalb, nicht nur einen.

+1

Haben Sie versucht, Wähler über https : //jsoup.org/cookbook/extracti ng-Daten/Selektor-Syntax? – Pshemo

+0

Ja, damit habe ich Probleme. insbesondere mit CSS-Selektoren. –

+0

Können Sie Ihre Versuche veröffentlichen? Die meisten von uns besuchen Stack Overflow, um anderen zu helfen, ihren Code zu korrigieren, anstatt ihn von Grund auf neu zu schreiben, und indem Sie [was haben Sie versucht] (http://mattgemmm.com/what-have-you-tried/) schreiben, erhöhen Sie sich Ihre Chancen, eine angemessene Antwort und Erklärung zu Problemen zu erhalten, die Sie bei der Erstellung Ihrer Lösung gemacht haben. – Pshemo

Antwort

1
// connect to URL and retrieve source code as document 
    Document doc = Jsoup.connect(url).get(); 

    // find the link element in the article 
    Element link = doc 
      .select("article[itemprop=articleBody] p.interstitial-link i a") 
      .first(); 

    // extract the link text 
    String linkText = link.ownText(); 

    // extract the full url of the href 
    // use this over link.attr("href") to avoid relative url 
    String linkURL = link.absUrl("href"); 


    // display 
    System.out.println(
      String.format(
        "%s[%s]", 
        linkText, 
        linkURL)); 

Lesen Sie mehr über CSS Selectors


Sie auch jeden Link im Artikel wie dieser laufen könnte:

for (Element link : doc.select("article[itemprop=articleBody] a")) { 
     String linkText = link.ownText(); 
     String linkURL = link.absUrl("href"); 
     System.out.println(
       String.format(
         "%s[%s]", 
         linkText, 
         linkURL)); 
    } 

Ausgabe

Link Text[http://www.URL.com] 
+0

nicht sicher, warum Ihre erste Lösung einen Nullzeigerfehler ergab. Ihre zweite Lösung funktioniert jedoch einwandfrei. Ich danke dir sehr. –

Verwandte Themen