انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
پارس کردن HTML در اندروید

پارس کردن HTML در اندروید

#1
با سلام
من یه سایت دارم که دارای یک تگ <form> هست که نمیشه اونو به json ترجمه کرد (اگه میشه راهکاری بدید خخ) Big Grin
اما من تصمیم گرفتم اطلاعات رو از صفحه html بگیرم و id form و کد مخصوص submit کردن رو از صفحه بگیرم و بعد با روش post ارسالشون کنم به همون صفحه .
حالا راهکاری برام سراغ دارید بشه html رو parse کرد ؟ البته به این سایت هم برخوردم ولی مستندات خوبی نداشت https://medium.com/@ssaurel/learn-to-par...9b0da0096f )
بازم ممنون
پاسخ

پارس کردن HTML در اندروید

#2
(۱۳۹۶/۰۷/۲۳, ۰۱:۱۲ ب.ظ)mahdigh نوشته: با سلام
من یه سایت دارم که دارای یک تگ <form> هست که نمیشه اونو به json ترجمه کرد (اگه میشه راهکاری بدید خخ) Big Grin
اما من تصمیم گرفتم اطلاعات رو از صفحه html بگیرم و id form و کد مخصوص submit کردن رو از صفحه بگیرم و بعد با روش post ارسالشون کنم به همون صفحه .
حالا راهکاری برام سراغ دارید بشه html رو parse کرد ؟ البته به این سایت هم برخوردم ولی مستندات خوبی نداشت https://medium.com/@ssaurel/learn-to-par...9b0da0096f )
بازم ممنون

ببينيد عملا HTML مثل داده هاي Json و XML قابل پارس شدن نيستند
شما يا بايد از webview استفاده كنيد ك راه بهينه اي نيس اما كار راه بندازه
يا اينكه صفحه اچتملتون رو بصورت كد دريافت كنيد و با كد نويسي قسمت هايي از اون رو ك خارج كنيد و در رشته يا آرايه هايي ذخيره كنيد (يني تگ html رو تو متغيير ذخيره كنيد)
و قطعا راه هاي ديگه هم وجود داره اگه سرچ كنيد

[sobhansh2011@yahoo.com]
پاسخ
 سپاس شده توسط mahdigh

پارس کردن HTML در اندروید

#3
من که توی سات های ایرانی راه حل درست و خوبی رو پیدا نکردم.
پاسخ

پارس کردن HTML در اندروید

#4
ممنون so2011
پاسخ

پارس کردن HTML در اندروید

#5
این کد لینکهای درون html  رو میکشه بیرون. از قسمت a[href] می تونین تگ دلخواه رو مثل css  انتخاب کنید:

کد:
   private void getWebsite() {
       new Thread(new Runnable() {
           @Override
           public void run() {
               final StringBuilder builder = new StringBuilder();
               final String url="";
               try {
                               Document doc = Jsoup.connect(url).get();
                   String title = doc.title();
                   Elements links = doc.select("a[href]");

                   builder.append(url).append("\n");

                   for (Element link : links) {

                       String lin = URLDecoder.decode(link.attr("href"), "UTF-8");

                       String lon = String.valueOf(lin.charAt(0));
                       Boolean f5 = !(lon.equals("/"));
                       Boolean f6 = !(lon.equals("#"));
                       if ( f5 && f6) {
                           builder.append("\n").append("Link : ").append(URLDecoder.decode(link.text(), "UTF-8"))
                                   .append("\n").append("Text : ").append(URLDecoder.decode(link.attr("href"), "UTF-8"));


                           mylist.add(URLDecoder.decode(link.text(), "UTF-8").toString());
                           mylisturl.add(URLDecoder.decode(link.attr("href"), "UTF-8"));

                           //
                       }
                   }
               } catch (IOException e) {
                   builder.append("Error : ").append(e.getMessage()).append("\n");
               }

               runOnUiThread(new Runnable() {
                   @Override
                   public void run() {
                       first = true;
                      // Toast.makeText(MainActivity.this, builder.toString(), Toast.LENGTH_SHORT).show();
                       if(!isreg) {mahdood=mahdood-1;
                           if(mahdood<0){{mahdood=0;}
                           }}
                       wirtemahdod(mahdood);
                       if (mylist.size() > 0) {
                           for (int i = 0; i < mylist.size(); i++) {
                               String furl = mylisturl.get(i);
                               String ftitle = mylist.get(i);
                         //   Toast.makeText(MainActivity.this, ftitle, Toast.LENGTH_SHORT).show();
                            if (filter(ftitle).equals("") || filter(ftitle).equals(" ")){

                                ftitle=st.getText().toString();
                            }
                               if(!first) {
                                   getmp3(furl, ftitle, i);
                               }
                               try {
                                   TimeUnit.SECONDS.sleep(1);
                               } catch (InterruptedException e) {
                                   e.printStackTrace();
                               }
                           }


                       } else {
                           Toast.makeText(MainActivity.this, "جستجو ناموفق بود.", Toast.LENGTH_SHORT).show();
                           pb.setVisibility(View.INVISIBLE);
                       }


                   }
               });
           }
       }).start();
   }
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان