Невозможно вернуть текст в href (jSoup) - PullRequest
0 голосов
/ 27 января 2012

Вот фрагмент кода, который я использую для доступа к «тесту» из фрагмента HTML ниже. Как я могу получить доступ к URL https://www.google.com из html?

Elements e = doc.getElementsByAttribute("href");
Iterator<Element> href = e.iterator();
    while ( href.hasNext() ){
    Element link = href.next();
    String text = link.text();
    }



   <a href="javascript:linkToExternalSite('https://www.google.com','','61x38pxls','','','','','')">Test</a>

Ответы [ 3 ]

1 голос
/ 27 января 2012

Я не эксперт по Jsoup, но Jsoup - это html-парсер, который нельзя использовать для анализа содержимого внутри тега javascript.

Итак, ваш подход должен заключаться в извлечении

"javascript:linkToExternalSite('https://www.google.com','','61x38pxls','','','','','')"

с помощью Jsoup.

Чем использовать регулярные выражения для извлечения содержимого / URL.

0 голосов
/ 04 февраля 2012
    String html = "<a href=\"javascript:linkToExternalSite('https://www.google.com','','61x38pxls','','','','','')\">Test</a>";
    Document doc = Jsoup.parse(html);
    Element e = doc.select("a[href]").first();
    String href = e.attr("href");   
    String arg[] = href.split("'");
    String url = arg[1];
    // Output: 'https://www.google.com'
    System.out.println(url);
0 голосов
/ 27 января 2012

HREF - это атрибут, к которому вы можете обратиться с помощью метода attr элемента Jsoup.Это дает вам все содержимое атрибута, конечно, вам нужно некоторое сопоставление с шаблоном для получения URL.

...