Soru & Cevap

Android Web Üzerinden Veri Çekmek

06.11.2014 - 08:52

Merhabalar benim sorum  bu  site http://duyuru.neu.edu.tr/?p=80824 üzerinden veri çekmek. Sıkıntım ise bu html tagları arasındaki <td> deki verileri nasıl çekebilirim. Şuan basit bir şekilde veri çekmeye çalıştım ama olmadı.
Yardımlarınızdan dolayı teşekkürederim.

[code]

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.ParseException;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.TextView;

public class MAinActivity extends Activity{

    final static String URI="http://duyuru.neu.edu.tr/?p=80824";
    ProgressDialog mProgressDialog;
    TextView tv1;
    JSONObject Json;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv1 =(TextView) findViewById(R.id.tv1);
        
        
    }
    
    protected JSONObject readduyuru() throws ParseException, IOException, JSONException{
    
        HttpClient client =new DefaultHttpClient();
        HttpGet get =new HttpGet(URI);
        HttpResponse response= client.execute(get);
        StatusLine status= response.getStatusLine();
        int s=status.getStatusCode();
        if(s==200)
        {
            HttpEntity e=response.getEntity();
            String data=EntityUtils.toString(e);
            JSONArray posts=new JSONArray(data);
            JSONObject last=posts.getJSONObject(0);
            return last;
            
        }
        return null;
        
        }
    public class Yemek extends AsyncTask<String,String,String>{

        @Override
        protected String doInBackground(String... params) {
            
            try {
                Json=readduyuru();
                String data=Json.getString(null);
                return data;
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            return null;
        }

        /* (non-Javadoc)
         * @see android.os.AsyncTask#onPostExecute(java.lang.Object)
         */
        @Override
        protected void onPostExecute(String data) {
            tv1.setText(data);
        }
    
    }
    }

[/code]

77 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-1372-1408467635.jpg
ahmtbrk
07.11.2014 - 08:55

Jsoup isimli java librarysini kullanmanı önereceğim.SQL sorgusu atar gibi tagları hiyerarşisine göre yazdığında gayet güzel parse ediyor.

İyi çalışmalar

Mustafa SEMERCİÖZ
07.11.2014 - 04:27
libs içine ekledim ama istediğim verileri almayı bir türlü anlayamadım.
Baran BÜYÜK
07.11.2014 - 04:58
jsoup çok kullanışlı bir parser kütüphanesidir. Öncelikle string tipinde gelen html dosyasını jsop kütüphanesi içerisinde bulunun Document tipine çevirmeniz gerekiyor. Şöyle ki; Document doc = Jsoup.parse("gelenHtmlVerisi"); daha sonra bu document i, elementlerine ayırıyoyurz. Html tagları birer element oluyoor. Bunun içinde Elements sınıfını kullanıyoruz. şöyle ki; Elements hrTagi = doc.select("hr"); dediğimizde elimizde hr taglarını bulunduran bir elemnt oldu. Bundan sonra bu tag içerisindeki yazıları almak. O da şöyle; hrTagi.get(kacinciElement).text(); işte hepsi bu..
picture-9626-1398797004.jpg
bakiabaci
06.11.2014 - 09:47

Merhaba Mustafa,

Referans link için tıklayınız..

Referans link için tıklayınız..

Size fikir verebilecek bir kaç yazı buldum.. Umarım işinize yarar ..

İyi çalışmalar..