سلام..همانطور که دوستمون گفتن این لینک رو مطالعه کنید : لینک
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
مشکل دریافت دیتا از سایت با jsoup
مدیریت گفتگو
آخرین تغییر: 6 سال پیش
سلام
دوستان من می خواستم یه برنامه بنویسم که از سایت 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 رو هم خروجی گرفتم اما به نتیجه نرسیدم
عکس از سایت رو ضمیمه کردم که بهتر متوجه بشید منظورم چی هستش و کدوم بخش رو میخوام نمایش بدم
ممنوم میشک کمکم کنید
پاسخها 1
سلام
اینطور که من در این لینک مطالعه کردم نحوه ادرس دهی آی دی اینطور نیست
نظرات
دوست عزیز من از مدل آدرس دهی لینکی که گفتید هم قبلا استفاده کردم اما نتیجه نگرفتم...
خودتون تونستید مقدار قیمت رو توی برنامه نمایش بدید؟
چون مقدار قیمت در حال تغییر هست نمیتونی مقدارش رو مستقیم بگیری. باید api رو پیدا کنی. از بچه های وب بپرس بیشتر راهنمایی میکنن. من وب کار نیستم
خب بیا از قابلیت های String استفاده کن دنبال قیمت پایانی بگرد و ...
توی این ویدیو هم یک جوردیگه داره آدرس می ده: لینک
نمیشه محمد جان ، امتحان کردم قبلا
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام

نظرات