JavaRush /جاوا بلاگ /Random-SD /jsoup سان آسان HTML پارس ڪرڻ
Stanislav
سطح
Москва

jsoup سان آسان HTML پارس ڪرڻ

گروپ ۾ شايع ٿيل
شايد ڪنهن ڏينهن توهان کي پنهنجي اپليڪيشن ۾ ڪنهن ويب سائيٽ يا HTML دستاويزن کان معلومات حاصل ڪرڻ جي ضرورت پوندي، ۽ مان بغير ڪنهن اشتهار جي چوندس ته jsoup لائبريري استعمال ڪرڻ توهان جي ڪم کي تمام گهڻو آسان بڻائي ڇڏيندو. wiki جي مطابق ، jsoup هڪ اوپن سورس جاوا لائبريري آهي جيڪا HTML دستاويزن ۾ محفوظ ڪيل ڊيٽا کي پارس ڪرڻ، ڪڍڻ ۽ ان کي ترتيب ڏيڻ لاءِ ٺهيل آهي.

تيز شروعات

لائبريري کي جار فائل جي طور تي ڊائون لوڊ ڪري سگھجي ٿو ۽ ھڪڙي منصوبي ۾ رکيل آھي، يا Maven/Gradle استعمال ڪندي ڳنڍيل آھي. آئون آرٽيڪل جي آخر ۾ سرڪاري ويب سائيٽ ڏانهن هڪ لنڪ ڇڏيندس: اتي توهان لائبريري جو موجوده نسخو ڳولي سگهو ٿا. مثال ۾ اسان استعمال ڪنداسين ڪنيڪشن Maven ذريعي. اچو ته هڪ انحصار شامل ڪريو:
<​dependency​>
  <​groupId>org.jsoup</groupId>
  <​artifactId>jsoup</artifactId>
  <​version>1.11.3</version>
</dependency>

استعمال

سڀ کان پهريان، توهان کي org.jsoup.nodes.Document مان ڪلاس جو هڪ مثال حاصل ڪرڻ جي ضرورت آهي جيڪو Documentparsing لاءِ ذريعو ظاهر ڪري ٿو. اهو يا ته مقامي فائل يا لنڪ ٿي سگهي ٿو. مثال طور، هن آرٽيڪل ۾ اسان ويب سائيٽ yandex.ru استعمال ڪنداسين ۽ انهن جي موجوده نيوز فيڊ حاصل ڪرڻ جي ڪوشش ڪنداسين:
Document doc = Jsoup.connect("https://yandex.ru/")
                .userAgent("Chrome/4.0.249.0 Safari/532.5")
                .referrer("http://www.google.com")
                .get();
User Agentهڪ سڃاڻپ ڪندڙ آهي جنهن کي ٻڌايو ويو آهي سائيٽ جو دورو ڪيو پيو وڃي. ڪيترن ئي سائيٽن تي اهو سڀ کان اهم معيار آهي اينٽي اسپام فلٽر لاءِ. Referrerدرخواست جي ماخذ جي URL تي مشتمل آهي. اهو طريقو هڪ قابل استعمال IOException اڇلائي ٿو، تنهنڪري اسان هر شي کي بلاڪ get()۾ لپي سگهون ٿا ، يا صرف ان کي اڳتي وڌايو . اسان کي هن صفحي لاء ذريعو ڪوڊ مليو آهي. جيڪڏهن ضروري هجي ته، jsoup لائبريري پاڻ خراب ٿيل عناصر کي بحال ڪري سگهي ٿي. هاڻي اسان کي اهو ڪرڻو آهي ته ڳولا کي هڪ الڳ بلاڪ تائين محدود ڪيو وڃي. طريقو استعمال جو هڪ وڏو انتخاب آهي: اهو توهان کي ٽيگ، خاصيتون، ڪلاس ۽ ٻين پيٽرولن ذريعي عناصر ڳولڻ جي اجازت ڏئي ٿو. لڳ ڀڳ سڀني جديد برائوزرن کي هڪ چونڊيل عنصر جي ماخذ ڪوڊ کي جلدي ڳولڻ جي صلاحيت جي حمايت ڪن ٿا. سادي ٺاهه سان، اسان عنصر جو سورس ڪوڊ ڳوليندا آهيون جنهن جي اسان کي ضرورت آهي ۽ مخصوص طبقي سان هڪ بلاڪ حاصل ڪريون ٿا، جيڪو اسان نموني لاءِ استعمال ڪنداسين. اچو ته org.jsoup.select.Elements مان ڪلاس استعمال ڪريون اسان جي چونڊيل بلاڪ مان سڀئي عنصر چونڊڻ لاءِ. try/catchthrowsselect()divjsoup استعمال ڪندي آسان HTML پارسنگ - 1Elements
Elements listNews = doc.select("div#tabnews_newsc.content-tabs__items.content-tabs__items_active_true");
ھاڻي اسان وٽ ڪجھ ھن طرح آھي: jsoup استعمال ڪندي آسان HTML پارسنگ - 2ھاڻي اسان کي اھو ڪرڻو آھي ھڪڙو ننڍڙو لوپ استعمال ڪرڻ لاءِ سڀني عنصرن جي ذريعي.
for (Element element : listNews.select("a"))
            System.out.println(element.text());
طريقو text()توهان کي مارڪ اپ ڪوڊ کي رد ڪرڻ جي اجازت ڏئي ٿو ۽ صرف سڀني ايندڙ عناصر لاء متن جو هڪ ميلاپ ڇڏي ٿو. عمل جو نتيجو هن ريت ٿيندو: jsoup استعمال ڪندي آسان HTML پارسنگ - 3اهو نوٽ ڪرڻ آسان آهي ته حاصل ڪيل قطارن جو اصل تعداد صفحي تي اصل ڊسپلي سان مطابقت نٿو رکي. اهو آهي جتي خرابيون ڪوڙ. جيڪڏهن توهان مارڪ اپ جي سورس ڪوڊ تي نظر وجهندا، توهان ڏسندا ته تازيون خبرون متحرڪ طور تي هڪ خاص وقت جي وقفي تي تبديل ٿينديون آهن. انهن مان ڪجهه "پٿر" اضافي نموني سان حل ڪيا ويا آهن، ۽ يقينا، ٽيسٽ. اهو ٿي سگهي ٿو ته پهرين پنج عنصرن ۾ معلومات هوندي جيڪا اسان کي گهربل هوندي، ۽ ڇهين عنصر ۾ صرف هڪ اسڪرپٽ ٿيل خالي لائن هوندي. اهو پڻ ٿئي ٿو ته بلاڪ کي ڪو به سڃاڻپ ڪندڙ نه هوندو، پوء اهو ممڪن آهي ته سڌو طريقي سان استعمال ڪندي get(int index)سوال ۾ عنصر جي پوزيشن نمبر ڏانهن اشارو ڪيو وڃي.
System.out.println(listNews.select("a").get(2).text());

نتيجو

هي مثال ڏيکاري ٿو صرف هڪ ننڍڙو حصو جيڪو jsoup جي قابل آهي. اها حقيقت پڻ آهي ته سائيٽون اڪثر اپڊيٽ ڪيون وينديون آهن، مارڪ اپ ڪوڊ جي ڍانچي کي تبديل ڪندي، تنهنڪري جڏهن اسڪراپنگ سان ڪم ڪندي، توهان کي تبديلين سان مطابقت ڪرڻ لاء تيار ٿيڻ جي ضرورت آهي. توهان وڌيڪ معلومات حاصل ڪري سگهو ٿا ۽ موجوده نسخو سرڪاري ويب سائيٽ jsoup.org تي؛ توهان o7planning.org تي ڪلاس ۽ طريقن بابت وڌيڪ پڙهي سگهو ٿا . مان پنهنجي گٿب ڏانهن هڪ لنڪ ڇڏيندس ، لکڻ جي وقت اتي ڪيترائي ٽيليگرام بوٽ آهن جيڪي معلومات حاصل ڪرڻ ۽ ڊسپلي ڪرڻ لاءِ Jsoup استعمال ڪندا آهن.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION