2017-12-27 23 views
-2

Jsoup를 사용하여 Java에서 필요한 모든 데이터를 폴링하여 요소로 저장하고 "링크"라는 이름을 지정할 수있었습니다. 캘리포니아, 네바다, 텍사스와 같은 주를 스캔하여 폴링 된 데이터 중 하나가 목록에 나타날 때마다 카운트를 하나씩 증가시키고 싶습니다. 각 상태에 대해 int를 크레이트하고 + =를 사용하여 while 문에 던져 넣고 각 상태를 스캔하기 위해이 문장 중 50 개를 만들지 만 어떻게해야합니까? 또한 그 문장을 50 번 타이핑하는 것을 피하는 방법이 있습니까?jsoup 핵심어 검색 요소

링크에 대한 코드는

try { 
    doc = Jsoup.connect("https://www.cinemark.com/full-theatre-list").get(); 

    String title = doc.title(); 
    System.out.println("title : " + title); 

    Elements links = doc.select("a[href]"); 
} 

내가 완벽하게 기능을 게시하고 내가 원하는 걸 얻을 코드, 그래서 난 내 질문에 내가 키 단어를 내가 만든 요소를 ​​참조하고 스캔하는 방법 것 같다 .

이 코드는 코드 일부이므로 jsoup에 대한 경로를 설정하지 않으면 실행되지 않습니다. 제 질문은 내가 게시 한 코드가 아니라 프로그램의 일반적인 아이디어를 제공하기위한 것입니다.

+0

안녕하세요. 귀하의 질문에 개선이 필요합니다. 예를 들어 사용 된 데이터 구조를 설명하면 도움이됩니다. 또한 몇 가지 코드 또는 적어도 의사 코드를 작성하고 이에 대한 특정 질문을 시도하십시오. 이와 같이 귀하의 질문은 너무 일반적입니다. – luksch

+0

정확히 어떻게하는지 모르겠습니다. 스크린 샷을 게시하면 나중에 사용할 수 있도록 설명해 줄 수 있습니까? – vic

+0

스크린 샷 없음. 먼저 "링크"를 수집하기 위해 작성한 코드를 게시하는 것입니다. – luksch

답변

0

프로그래밍에 익숙하지 않은 것 같습니다 (Java). 당신이 원하는 일을하는 한 가지 방법은 다음과 같습니다 일을해야합니다 : 코드 당신도 물론

//create StateCounter instances in a list 
List<StateCounter> statecounters = new ArrayList<StateCounter>(); 

statecounters.add(new StateCounter("Texas")); 
statecounters.add(new StateCounter("Nevada")); 
... 

//when you have the links 

for (Element link: links){ 
    for (StateCounter sc : statecounters){ 
     if (link.getElementsByAttributeValueContaining​("href", sc.name)){ 
      sc.count++; 
     } 
    } 
} 

//do whatever you need to do. 

private class StateCounter { 
    public String name = ""; 
    public int count = 0; 

    public StateCounter(String name) { 
     super(); 
     this.name = name; 
     this.count = 0; 
    } 
} 

2) :

1)이 같은 클래스 StateCount 만들기 카운트를 저장하기 위해 HashMap 데이터 구조를 사용할 수 있습니다. 그것은 당신이 카운트를 가지고 실제로하고 싶은 것을 조금씩 좌우합니다.