2011-09-19 9 views
2

나는이 HTML 내가 jsoup 사용하여 별도의 문자열에 각 URL을 구문 분석 할3 개의 URL을 구별하기 위해 html을 파싱하려면 어떻게해야합니까?

<div class="latest-media-images"> 
    <div class="hdr-article">LATEST IMAGES</div> 
    <a class="lnk-thumb" href="http://media.pc.ign.com/media/093/093395/imgs_1.html"><img id="thumbImg1" src="http://media.ignimgs.com/media/thumb/351/3513804/the-elder-scrolls-v-skyrim-20110824023151748_thumb_ign.jpg" class="latestMediaThumb" alt="" height="109" width="145"></a> 
    <a class="lnk-thumb" href="http://media.pc.ign.com/media/093/093395/imgs_1.html"><img id="thumbImg2" src="http://media.ignimgs.com/media/thumb/351/3513803/the-elder-scrolls-v-skyrim-20110824023149685_thumb_ign.jpg" class="latestMediaThumb" alt="" height="109" width="145"></a> 
    <a class="lnk-thumb" href="http://media.pc.ign.com/media/093/093395/imgs_1.html"><img id="thumbImg3" src="http://media.ignimgs.com/media/thumb/351/3513802/the-elder-scrolls-v-skyrim-20110824023147685_thumb_ign.jpg" class="latestMediaThumb" alt="" height="109" width="145"></a> 
</div> 

에서 각 URL을 구문 분석하려합니다.

필자는 jsoup 구문 분석으로 꽤 잘하고 있습니다. 하지만 내가 뭘하고 싶은지 모르겠다. 각 URL을 자체 String으로 가져 오기 시작해야 할 곳을 모르겠다.

여기 어떻게 할까? 구문 분석 한 다음 별도의 문자열로 가져 오는 중입니까? 편집

:

아니면 그들이 문자열을 분리해서 얻을하지 못할 경우, 어쩌면 내가 그들을이 목록에 설정할 수 있습니다? 그리고 그들을 어떤 식 으로든 적재 하시겠습니까?

또는 각각을로드 할 수 있습니까? 1 by 1?

그냥 몇 가지 제안의 생각 메신저 ...

편집 :이 내가 목록으로 링크를 추출하는 데 필요한 것을 볼 수 아래의 코멘트에서.

/** 
* Example program to list links from a URL. 
*/ 
public class ListLinks { 
    public static void main(String[] args) throws IOException { 
     Validate.isTrue(args.length == 1, "usage: supply url to fetch"); 
     String url = args[0]; 
     print("Fetching %s...", url); 

     Document doc = Jsoup.connect(url).get(); 
     Elements links = doc.select("a[href]"); 
     Elements media = doc.select("[src]"); 
     Elements imports = doc.select("link[href]"); 

     print("\nMedia: (%d)", media.size()); 
     for (Element src : media) { 
      if (src.tagName().equals("img")) 
       print(" * %s: <%s> %sx%s (%s)", 
         src.tagName(), src.attr("abs:src"), src.attr("width"), src.attr("height"), 
         trim(src.attr("alt"), 20)); 
      else 
       print(" * %s: <%s>", src.tagName(), src.attr("abs:src")); 
     } 
    } 
} 

저는 이것이 내 용도에 맞게 최적화되었지만 올바른 방향으로 생각합니다.

내가 html src의 위 예제 목록을 추출해야합니까?

+0

희망을 - http://jsoup.org/cookbook/extracting-data/example-list-links – adatapost

+0

확인 @AVD 내 편집 –

+0

체크 아웃 내 링크 편집. –

답변

2

모든 이미지가 필요합니까? 그런 다음이 XPath 표현하려고 :이 예제 URL이 당신을 도울 것입니다

XPath xpath = XPathFactory.newInstance().newXPath(); 
NodeList nodes = (NodeList) xpath.evaluate("//img", doc, XPathConstants.NODESET); 

List<String> imageUrls = new ArrayList<String>(); 
for (int i = 0; i < nodes.getLength(); i++) { 
    Node img = nodes.item(i); 
    imageUrls.add(img.getAttributes().getNamedItem("src").getNodeValue()); 
} 
관련 문제