آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل دریافت دیتا از سایت با jsoup

136256  3 سال پیش  3 سال پیش
0 0

سلام
دوستان من می خواستم یه برنامه بنویسم که از سایت tsetmc.com قیمت لحظه ای یه نماد رو دریافت کنه و توی برنامه نمایش بده
واسه این کار من از کتابخونه jsuop استفاده کردم
کدی که نوشتم به این شکل هستش:

 
package com.example.jsoupproject01;

import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;
import android.widget.Toast;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Attribute;
import org.jsoup.nodes.Attributes;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MainActivity extends Activity {

    // URL Address
    String url = "http://www.tsetmc.com/Loader.aspx?ParTree=151311&i=70934270174405743";
    ProgressDialog mProgressDialog;
    private String info;
    private String info1;
    TextView showTitle1;
    static TextView text1;
    int num1;
    String name0;
    String name1;
    String name2;
    String name3;
        @Override
 public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        showTitle1 = (TextView) findViewById(R.id.text_id1);
        text1 = (TextView) findViewById(R.id.text_id0);

                new VerifyInfoSite().execute();
    }

    // Title AsyncTask
    private class VerifyInfoSite extends AsyncTask<Void, Void, Void> {
        String title;
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            //نشان دادن progressDialog
            mProgressDialog = new ProgressDialog(MainActivity.this);
            mProgressDialog.setTitle(" در حال دریافت اطلاعات");
            mProgressDialog.setMessage("در حال بارگیری");
            mProgressDialog.setIndeterminate(false);
            mProgressDialog.show();
            showTitle1.setText("start");
        }

        @Override
        protected Void doInBackground(Void... params) {
            try {
                // اتصال به سایت با کلاس Jsoup
                Document document = Jsoup.connect(url).get();

                // حالت دوم اتصال به سایت با کلاس Jsoup
                Document doc = Jsoup.parse("UTF-8",url);

                // td.d03 آی دی قیمت هستش (توی عکس ضمیمه مشخصش کردم)
                Elements a5 = document.select("td.d03");
                name0=a5.text();
                name1=a5.html();
                name2= document.title();
                num1=a5.size();


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

        @Override
        protected void onPostExecute(Void result) {
            // نشان دادن اطلاعات در تکست ویو
            TextView showTitle = (TextView) findViewById(R.id.text_id0);
            Toast.makeText(getBaseContext() , name3 , Toast.LENGTH_LONG).show();
            showTitle.setText(name0+"\n"+"\n"+"\n"+name1+"\n"+"\n"+"\n"+name2+"\n"+"\n"+"\n"+num1);
            // پایان نمایش progressDialog
            mProgressDialog.dismiss();
            // پایان نمایش progressDialog
        }
    }
}




هر دو حالت jsoup.connect و jsoup.pars رو هم امتحان کردم اما جواب نگرفتم!

تمام حالات .text و .html و .title رو هم خروجی گرفتم اما به نتیجه نرسیدم
عکس از سایت رو ضمیمه کردم که بهتر متوجه بشید منظورم چی هستش و کدوم بخش رو میخوام نمایش بدم
ممنوم میشک کمکم کنید

0 0
("doc.body().getElementsById("d03 (3 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
namdar79  3 سال پیش
0 0

سلام
اینطور که من در این لینک مطالعه کردم نحوه ادرس دهی آی دی اینطور نیست

+1 0
سلام..همانطور که دوستمون گفتن این لینک رو مطالعه کنید : لینک (3 سال پیش)
0 0
دوست عزیز من از مدل آدرس دهی لینکی که گفتید هم قبلا استفاده کردم اما نتیجه نگرفتم... خودتون تونستید مقدار قیمت رو توی برنامه نمایش بدید؟ (3 سال پیش)
0 0
چون مقدار قیمت در حال تغییر هست نمیتونی مقدارش رو مستقیم بگیری. باید api رو پیدا کنی. از بچه های وب بپرس بیشتر راهنمایی میکنن. من وب کار نیستم (3 سال پیش)
0 0
خب بیا از قابلیت های String استفاده کن دنبال قیمت پایانی بگرد و ... (3 سال پیش)
+1 0
توی این ویدیو هم یک جوردیگه داره آدرس می ده: لینک (3 سال پیش)
0 0
نمیشه محمد جان ، امتحان کردم قبلا (3 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .