2017-06-05 40 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()); 
     }