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

پیشنهادتون برای دریافت اطلاعات ویدیویی از یک سایت ( حل شده )

sadra  11 سال پیش  11 سال پیش
+4 0

دوستان چطوری میتونم اطلاعات یک سایت ویدیویی اعم از لینک ویدیو ، تایتیل و  سایر اطلاعات رو بگیرم و ذخیره کنم  و در یک لیست ویو نمایش بدم ؟ : 1- با چه روشی درخواست بدم 2- با چه روشی دریافت کنم ؟ 3- چطوری ذخیره کنم و این ویدیوها رو در یک لیست ویو نشون بدم ؟ سپاسگزارم 

+1 0
آپارات یک API داره برای این کارا لینک شاید کمکتون کنه (11 سال پیش)
0 0
ممنونم از پاسخت ، اما من آپارت رو برای مثال بیان کردم ، سایت مورد نظر من API نداره ، بازم ممنونم (11 سال پیش)
0 0
این کار با json انجام میگیره آیا ؟ دوستان اگر ممکن راهنمایی کنن (11 سال پیش)
 برای این سوال 6 پاسخ وجود دارد.
پاسخ به سوال 
sadra  11 سال پیش
0 0

دوستان لطفا راهنمایی کنید  چطوری باید همچین لینکی رو از سورس یک سایت بخونم 

 
</figure>
  <div class="glyphicon glyphicon-play"></div>
  </a>
  </div>
  <div class="col-xs-6 col-sm-6 col-md-3">
  <a href="/video/112548855/به روز ترین ویدیوها" class="video-thumbnail thumbnail">
  <figure>

به چه طریقی میتونم این کار رو بکنم ؟ 

+1 0
با jsoup به راحتی میتونی این کارو انجام بدی.کار کردن باهاش خیلی راحته (11 سال پیش)
0 0
ممنونم از لطفتت من با استفاده از لینکی که گذاشته بودی این لایبرری رو ایمپورت کردم ، اما در مورد کد نویسی و آموزشش چطوری باید از این لایبرری استفاده کنم ، طبق این لینک شما لینک ممنونم (11 سال پیش)
+1 0
ولا من از همین لینک یاد گرفتم و تقریبا میشه گفت هر قسمتی از کد html رو میتونم بیرون بکشم ولی بلد نیستم آموزش بدم.شما اگه سرچ کنید Jsoup Tutorial کلی مطلب پیدا میشه.شما یک سایت تعیین کن و بگو کدوم قسمتشو میخوای بگیری تا من کدشو همین جا با مختصری توضیح بنویسم (11 سال پیش)
0 0
ممنونم از شما چشم ؛ مثلا میخایم بریم این سایت لینک و این مشابه این مدل لینک رو بخونیم : title="اخبار کوتاه ورزشی؛ کناره‌گیری مسی از تیم ملی آرژانتین"> 10 دقیقه قبل اخبار کوتاه ورزشی؛ کناره‌گیری مسی از تیم ملی آرژانتین (11 سال پیش)
پاسخ به سوال 
sadra  11 سال پیش
0 0

دوباره سوالم رو اصلاح می کنم ف مثلا بریم این سایت  http://video.varzesh3.com/

و این لینک و لینک های ودیویی مشابه رو بخونیم مانند این لینک 

 
title="اخبار کوتاه ورزشی؛ کناره‌گیری مسی از تیم ملی آرژانتین">
  <img src="http://video.varzesh3.com/wp-content/uploads/080715_akhbarkootah_940417.jpg" width="160" height="106" alt="اخبار کوتاه ورزشی؛ کناره‌گیری مسی از تیم ملی آرژانتین"/>
  <span>10 دقیقه قبل</span>
  <strong>اخبار کوتاه ورزشی؛ کناره‌گیری مسی از تیم ملی آرژانتین</strong></a>
  </li><li class="firstpage-li"><a href="http://video.varzesh3.com/other-video-clips/other_sport/%d8%af%d8%b1%d8%ae%d8%b4%d8%b4-%d8%a8%d8%a7%d9%86%d9%88%d8%a7%d9%86-%d8%af%d8%b1-%d9%85%d8%b3%d8%a7%d8%a8%d9%82%d8%a7%d8%aa-%d8%af%d8%a7%d9%86%d8%b4%d8%ac%d9%88%db%8c%d8%a7%d9%86-%d8%ac%d9%87%d8%a7/

و این لینکها در یک دیتابیس دخیره و  در یک لیست ویو به کاربر نشون بدیم ، ممنونم از لطف شما 

+1 0
من یه آموزش میزارم که از همون آدرس که دادید از قسمت آخرین بارگذاریها عنوان ویدئوها،لینک ویدئوها و تصویر ویدئوها رو بگیره و هر کدوم رو داخل آرایه ذخیره کنه. (11 سال پیش)
+1 0
کار با دیتابیس و لیست ویو با خودتون دیگه (11 سال پیش)
0 0
بینهایت سپاسگزارم ، لطف بزرگی می کنی داداش ، سپاس (11 سال پیش)
پاسخ به سوال 
mtn67  11 سال پیش
+3 0

ابتدا از این آدرس کتابخونه JSOUP رو دانلود کن : لینک

فقط   jsoup-1.8.2.jar   دانلود بشه

پروژه خودتو درست کن و کتابخونه رو وارد کن.طریقه وارد کردن: روو اسم پروژت کلیک راست کن گزینه properties رو انتخاب کن.از قسمت Java Build Path تب Libraries بر روی Add External JARs کلیک و مسیر کتابخونه ای که دانلود کردی رو بهش بده و open کن.بعد برو تب Order and Export و تیک فایل jsoup رو بزن و به بالای همه منتقلش کن.خب حالا همه چیز آماده است برای کد نویسی.

1-ابتدا دسترسی به اینترنت رو از داخل منیفست تنظیم کن.

2-در داخل اکتیویتی مورد نظر و در قسمت مربوط به onCreate سه تا ArrayList که قراره عنوان و لینک و آدرس تصاویر ویدئوها در اونا قرار بگیره تعریف کن به این طریق:

 ArrayList<String> videoLink = new ArrayList<String>();
 ArrayList<String> videoImage = new ArrayList<String>();
 ArrayList<String> videoTitle = new ArrayList<String>();

3-در این مرحله باید به سایت مورد نظر متصل بشیم و سورس سایت رو داخل یک Document بریزیم به این طریق:

 Document doc = Jsoup.connect("http://video.varzesh3.com/").get();

بعد از این کار از ما میخواد که try و catch رو پیاده کنیم که با کلیک رو اون گزینه کد ما به این صورت در میاد:

    try {
            Document doc = Jsoup.connect("http://video.varzesh3.com/").get();
        }
        catch (IOException e) {
            e.printStackTrace();
        }

4-خب تا الان ما تونستیم سورس سایت مورد نظر رو دریافت کنیم.حالا باید یه کم جزئی تر بشیم و اون تیکه از سورس که به درد ما میخوره رو دریافت کنیم.در این مثال ما با محتویاتی که داخل این تگ قرار داره کار داریم : <div id="recent_posts">

برای دریافت کد html ای که داخل این تگ قرار داره به صورت زیر عمل میکنیم:

 Element recentVideoHtml = doc.getElementById("recent_posts");

5-خب در این مرحله باز هم باید جزئی تر بشیم و تگهایی که حاوی لینک،آدرس تصاویر و عنوان ویدئوها هستن و داخل المنت recentVideoHtml ریختیم رو انتخاب کنیم به این صورت:

  Elements links = recentVideoHtml.select("a[href]");
  Elements imgs = recentVideoHtml.select("img[src]");
  Elements titles = recentVideoHtml.select("strong");

6-تا اینجا به هدف مورد نظر نرسیدیم و برای دریافت خالص اطلاعات مورد نظرمون به صورت زیر عمل میکنیم:

for (Element link: links) {
        videoLink.add(link.attr("href"));
            }
for (Element img: imgs) {
        videoImage.add(img.attr("src"));
            }
for (Element title: titles) {
        videoTitle.add(title.text());
            }

توضیحات: برای حلقه ی اول ما تعریف کردیم تا زمانی که المنت links وجود داره حلقه ادامه داشته باشه و در هر تکرار مقدار links داخل link ریخته میشه و با دستور:

 link.attr("href")

از تگ  a href> مقدار اتریبیوت href رو دریافت میکنیم و با دستور گفته شده داخل آرایه میریزیم (همزمان با خوندن توضیحات به سورس سایت هم توجه بشه تا فهم مطالب راحتر باشه).

برای حلقه دومی هم به این گونه عمل میشه.

برای سومی یه کم متفاوته چون سورس html اون فرق داره و ما باید مقدار تگ <strong> رو بخونیم.

تموم شد.سوالی بود در خدمتم.

پاسخ به سوال 
mtn67  11 سال پیش
+3 0

سورس کامل:

 package com.example.app.aparat;

import java.io.IOException;
import java.util.ArrayList;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;


public class AparatActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ArrayList<String> videoLink = new ArrayList<String>();
        ArrayList<String> videoImage = new ArrayList<String>();
        ArrayList<String> videoTitle = new ArrayList<String>();

        try {
            Document doc = Jsoup.connect("http://video.varzesh3.com/").get();
            Element recentVideoHtml = doc.getElementById("recent_posts");
            Elements links = recentVideoHtml.select("a[href]");
            Elements imgs = recentVideoHtml.select("img[src]");
            Elements titles = recentVideoHtml.select("strong");
            for (Element link: links) {
                videoLink.add(link.attr("href"));
            }
            for (Element img: imgs) {
                videoImage.add(img.attr("src"));
            }
            for (Element title: titles) {
                videoTitle.add(title.text());
            }
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}
پاسخ به سوال 
sadra  11 سال پیش
+1 0

ممنونم داداش گلم ، من کد های شما رو اجرا کردم خطای NetworkOnMainThreadException رو برام داد که کد ها رو ریختم روی یک ترد به این صورت ، میخاسم بدونم راهنمایی کنی  کارم درست بوده یا نه 

 final ArrayList<String> videoLink = new ArrayList<String>();
	        final ArrayList<String> videoImage = new ArrayList<String>();
	        final ArrayList<String> videoTitle = new ArrayList<String>();
	         Thread thread = new Thread(new Runnable() {

	            @Override
	            public void run() {

	        try {
	            Document doc = Jsoup.connect("http://video.varzesh3.com/").get();
	            Element recentVideoHtml = doc.getElementById("recent_posts");
	            Elements links = recentVideoHtml.select("a[href]");
	            Elements imgs = recentVideoHtml.select("img[src]");
	            Elements titles = recentVideoHtml.select("strong");
	            for (Element link: links) {
	                videoLink.add(link.attr("href"));
	            }
	            for (Element img: imgs) {
	                videoImage.add(img.attr("src"));
	            }
	            for (Element title: titles) {
	                videoTitle.add(title.text());
	            }
	        }
	        catch (IOException e) {
	            e.printStackTrace();
	        }
	          
	            }
	            
	        });
	            thread.start();
	        }
	        
}

 

خب تصویری که توی لاگ کت بهم نشون داده به این صورته ؟

اگر تا اینجا همه چی اکی بوده ممنونم میشم راهنمایی کنی که از این به بعد باید این خروجی رو چطوری در دیتا بیس ذخیره کنم ؟

پاسخ به سوال 
mtn67  11 سال پیش
+2 0

خب شما امتحان کن ببین اطلاعات درست دریافت میشه یا نه.برا من نیاز به thread نداشت.خروجی هارو با لوگ نمایش بده ببین مشکلی پیش میاد یا نه یعنی حلقه هارو به این صورت بنویس :

    for (Element link: links) {
                videoLink.add(link.attr("href"));
                Log.i("LOG",link.attr("href"));
            }
     for (Element img: imgs) {
                videoImage.add(img.attr("src"));
                Log.i("LOG",img.attr("src"));
            }
      for (Element title: titles) {
                videoTitle.add(title.text());
                Log.i("LOG",title.text());
            }

بعد توو لوگ کت ببین اطلاعات مشون داده میشن

0 0
بله خوشبختانه خروجی دارم در لوگ 20 تا کلیپ که در صفحه قرار داره همراه با عکس و لینک و متنش رو برام میخونه و نشون میده ، ممنونم از لطفت داداشی (11 سال پیش)
0 0
در مورد ذخیره کردن در دیتابیس و نشون دادنشون هم در لیست ویو لطف کن و راهنماییم کن ، که بعد از این مرحله من چطوری این کار رو انجام بدم ، ممنونم (11 سال پیش)
+2 0
در مورد لیست ویو که استاد توضیح دادن در مورد دیتابیس هم که در انجمن زباد بحث شده.خودت باید بتونی درستش کنی من فقط در این مورد که آموزشی وجود نداشت آموزش گذاشتم.شما کار با لیست ویو رو شروع کن از آموزش استاد، آموزشهایی که در این انجمن وجود داره و سرچ از طریق گوگل باید بتونی مشکلتو حل کنی و باید یاد بگیری مشکلتو حل کنی.حالا در این بین اگه مشکلی پیش اومد که نتونستی حل کنی و داخل انجمن نبود بیا اینجا بپرس (11 سال پیش)
0 0
خیلی ممنونم ، چشم ، بازم ممنونم کمک بزرگی کردی بسیار سپاسگزارم (11 سال پیش)

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