2012-01-26 3 views
0

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

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> 

ответ

0

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

1

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

Таким образом, ваш подход должен извлечь

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

использованием Jsoup.

За использование regular expressions для получения содержимого/URL.

0
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); 
Смежные вопросы