html파싱으로 데이터를 받아오고 있는 학생입니다.
제가 받아올려는 데이터가 총 89개 데이터 입니다.
그래서 파싱시 소스가 아래와 같습니다.
public ArrayList<String> getActor(String strURL){
Source source;
get_actor = "";
arrayactor = new ArrayList();
try {
URL nurl = new URL(strURL);
source = new Source(nurl);
Element element,elementlink= null;
List<Element> list = source.getAllElementsByClass("info_txt1");
for (int i=0;i<list.size();i++){
element = list.get(i);
elementlink = element.getAllElements(HTMLElementName.DD).get(2);
if(elementlink==null || elementlink.equals("") == true){
get_actor = "없음";
}else{
TextExtractor textExtractor = elementlink.getTextExtractor();
get_actor = textExtractor.toString();
}
arrayactor.add(get_actor);
}
}catch (Exception e){
}
return arrayactor;
}
제가 받을려는 html 페이지에서 class명이 info_txt1의 모든 내용을 받아와서
그것만틈 for문으로 돌립니다.
그리고 그 클래스명이 info_txt1인 태그 안에서
<DD></DD>
<DD></DD>
<DD></DD> <- 요녀석을 찾기위해 위에처럼 적었습니다. (HTMLElementName.DD).get(2);)
처음에 이렇게 해서 실행을 시키니
89개의 데이터가 아니라 28개의 데이터만 뽑아왔습니다.
왜그런가 싶어서 보았더니 29번째 데이터에는 태그가
<DD></DD>
<DD></DD>
이렇게 2개의 DD 태그만 존재하였습니다.
그래서 아마 여기서 멈춘거 같은데...
이거 해당하는 태그가 없을때 처리해주는 방법이 없을까요?
그래서 저는 위와 같은 방법을 사용했지만 안되네요ㅠㅠㅠ
if(elementlink==null || elementlink.equals("") == true){
get_actor = "없음";
}else{
TextExtractor textExtractor = elementlink.getTextExtractor();
get_actor = textExtractor.toString();
}
arrayactor.add(get_actor);
꼭 그부분을 파싱해야 되는데
중간지점에 데이터에서는 세번째 DD 태그가 없으니 죽어버리네요...ㅠㅠ
이거예외처리하는방법 없을까요?