2017-10-10 4 views
-1

this website 왼쪽의 첫 번째 항목을 5 개 가져와야합니다. 하지만이 웹 사이트에서 안드로이드 앱 android studio에 아무것도 가져올 수 없습니다. jsoup 라이브러리와 인터넷 허가를 추가 했으므로 문제가되지는 않습니다. 프로그램을 실행하면 progressDialog가 작동하지만 웹 사이트에서 데이터를 가져 오지 못합니다. 목록보기에 데이터를 추가해야하지만 빈 화면이 표시됩니다. 도와 줘서 고맙다.Android Studio의 웹 사이트에서 html 구문 분석을 수행 할 수 없습니다.

package ahmety.wired; 

import android.app.ProgressDialog; 
import android.os.AsyncTask; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.select.Elements; 
import java.io.IOException; 
import java.util.ArrayList; 


public class MainActivity extends AppCompatActivity { 

private ListView lv; 
public ArrayList liste= new ArrayList(); 
private ArrayAdapter<String> adapter; 
private static String URL="https://www.wired.com/"; 
private ProgressDialog progressDialog; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    lv=(ListView)findViewById(R.id.list); 
    adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,liste); 
    new VeriGetir().execute(); 
} 

private class VeriGetir extends AsyncTask<Void, Void, Void> { 

@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 

    progressDialog= new ProgressDialog(MainActivity.this); 
    progressDialog.setTitle("WIRED"); 
    progressDialog.setMessage("Loading.."); 
    progressDialog.setIndeterminate(false); 
    progressDialog.show(); 

} 

@Override 
protected Void doInBackground(Void... voids) { 

    try { 
     Document doc = Jsoup.connect(URL).timeout(30 * 1000).get(); 

     Elements makaleAdi = doc.select("li.card-component__description"); 

      liste.add(makaleAdi.text()); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 


    return null; 
} 


@Override 
protected void onPostExecute(Void aVoid) { 
    super.onPostExecute(aVoid); 

    lv.setAdapter(adapter); 
    progressDialog.dismiss(); 

} 
} 
} 
+0

가 debuger을 사용하고'get' 요청이 올바른 페이지를 반환하는 경우 확인

여기 main_activity 클래스 내 응용 프로그램입니다. 그렇지 않은 경우 문제가 요청과 관련됩니다. 그렇다면 문제는 결과를 파싱하는 방법입니다. – TDG

+0

디버그에 문제가없는 것처럼 보입니다. 마지막 행은 디버그에서 ''대상 VM에 연결되었습니다. 주소 : 'localhost : 8615', 전송 : 'socket' ''. –

+0

즉, 디버거가 잘 작동한다는 것을 의미합니다. 예를 들어'doc'의 값을 검사 할 수 있도록 중단 점을 넣었습니까? – TDG

답변

0

userAgent 방법도 넣어 :

Document doc = Jsoup.connect(URL).timeout(30 * 1000) 
       .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6") 
       .get(); 
+0

문제가 해결되지 않습니다. –

관련 문제