2017-06-05 46 views
-2

我正在研究一個軟件和Jsoup上的新功能。我需要幫助。我正在解析一個網站。得到這樣的鏈接:從鏈接中獲取數字html解析jsoup

<a href="/?loc=shop_view_item&amp;item=139218679" class="market-name market-link">XXX</a> 

我怎樣才能把數字「139218679」與Jsoup或正則表達式。你能幫我嗎?

+0

告訴我們你試過一個[MCVE]來證明它。你必須先做出努力。 – t0mm13b

+0

我還在嘗試。對於前我試過。 String linkk = links.get(2).select(「a.market-name.market-link」)。first()。attr(「abs:href」); –

+0

我試過模式,但它不工作。模式idPattern = Pattern.compile(「/ \\ d + $ /」); Matcher matcher = idPattern.matcher(linkk); 而(matcher.find()){ 的System.out.println(matcher.group()); } –

回答

-1

例如從javascript檢查: `

var links = document.getElementsByClassName("market-name market-link"); 
for (var i=0; i<links.length; i++) { 
console.log(links[i].href.match(/\d+$/)[0]); 
} 

`

+0

我正在使用java,我不知道JavaScript。你能解釋一下嗎? –

+0

@CandiceArroyo只是獲得了一個href的價值,並嘗試在我的答案中將它與模式匹配。 – kRicha

+0

但你的模式不適合我。如果我使用「\\ d +」,它正在工作,但在鏈接中輸入另一個數字。 –

0

該代碼會爲你工作。你需要的是你需要從字符串中獲取數字;

String html ="<a href=\"/?loc=shop_view_item&amp;item=139218679\" class=\"market-name market-link\">XXX</a>"; 

     Document document= Jsoup.parse(html); 
     Elements elements = document.select("a[href]"); 

     for (Element element:elements){ 
      String itemValue = element.attr("href"); 
      itemValue = itemValue.replaceAll("[^0-9]+", " "); 
      System.out.println(itemValue.trim()); 
     }