JavaRush /جاوا بلاگ /Random-UR /jsoup لائبریری کے ساتھ html کو پارس کرنا
Сергей
سطح
Москва

jsoup لائبریری کے ساتھ html کو پارس کرنا

گروپ میں شائع ہوا۔
لہذا ہم سائٹ سے مخصوص معلومات حاصل کرنا چاہتے ہیں۔ آئیے دیکھتے ہیں کہ یہ مرحلہ وار کیسے کرنا ہے۔ jsoup لائبریری کے ساتھ html کو پارس کرنا - 1سب سے پہلے ہمیں حاصل کرنے کی ضرورت ہے Document۔ یہ ہمارے HTML صفحہ کی نمائندگی ہے۔ Jsoup کے پاس سائٹ کو ایک میں تبدیل کرنے کے کئی طریقے ہیں Document۔ سرور سے جڑیں۔
Document document = Jsoup.connect("https://hh.ru/").get();
Jsoup خود سائٹ سے جڑتا ہے۔ یہ طریقہ سب سے آسان ہے، لیکن یہ صرف جانچ کے لیے موزوں ہے۔ زیادہ آسان اور لچکدار HTTP کلائنٹس ہیں۔ یہ بھی ذہن میں رکھیں، اس سے کوئی فرق نہیں پڑتا ہے کہ آپ جو بھی HTTP کلائنٹ استعمال کرتے ہیں، درخواست میں User-Agentایک قدر کے ساتھ ہیڈر شامل کریں جیسے Chrome/81.0.4044.138۔ اس ہیڈر کا استعمال کرتے ہوئے، سرور اس بات کا تعین کرتا ہے کہ آپ نے کس ڈیوائس سے منسلک کیا ہے۔ اس ہیڈر کے بغیر، سرور آپ کو بوٹ سمجھتا ہے اور آپ پر پابندی لگا سکتا ہے۔ فائل سے ؛
File file = new File("hh-test.html");
Document document = Jsoup.parse(file, "UTF-8", "hh.ru");
یہ کسی چیز کو حاصل کرنے کا بنیادی طریقہ ہے Document۔ آخری دلیل "hh.ru"بنیادی URI ہے۔ یہ سائٹ پر موجود رشتہ داروں سے مطلق روابط بنانے کے لیے ضروری ہے۔ لائن سے
String html =
                "<html>                                                                       " +
                "    <head>                                                                   " +
                "        <title href=\"hh.ru/vacancy?home\">                                  " +
                "            Работа в Москве, поиск персонала и публикация вакансий - hh.ru   " +
                "        </title>                                                             " +
                "    </head>                                                                  " +
                "    <body>                                                                   " +
                "        <div class=\"header main\">                                          " +
                "            <h1>Работа найдется для каждого</h1>                             " +
                "            <div>Поиск вакансий</div>                                        " +
                "        </div>                                                               " +
                "        <div class=\"content\">                                              " +
                "            <div>Вакансии дня</div>                                          " +
                "            <div id=\"123\">Компании дня</div>                               " +
                "            <div>Работа из дома</div>                                        " +
                "        </div>                                                               " +
                "    </body>                                                                  " +
                "</html>                                                                      ";

        Document document = Jsoup.parse(html, "hh.ru");
اگلا، میں اس HTML میں لائبریری کا مظاہرہ کروں گا، جو ایک آسان سائٹ کی نمائندگی کرتا ہے۔ ٹیگ حاصل کرنا پارس کرتے وقت اہم کام مطلوبہ ٹیگ حاصل کرنا ہے۔ ہم یہ طریقہ استعمال کرتے ہوئے کریں گے select۔ نوٹ کریں کہ یہ ہمیشہ ٹیگز کی فہرست لوٹاتا ہے۔ اگر کوئی ٹیگ نہیں ملے تو فہرست خالی ہو جائے گی۔ آپ کو ایک CSS سلیکٹر پاس کرنے کی ضرورت ہے جس کے ذریعے ٹیگز کو طریقہ کار کی دلیل کے طور پر تلاش کیا جاتا ہے۔ میں سلیکٹرز پر مزید تفصیل سے غور کروں گا، کیونکہ تمام کام صحیح سلیکٹر کو لکھنے پر آتا ہے۔ عام طور پر ہمیں اسے کمپوز کرنے کی ضرورت ہوتی ہے تاکہ یہ ایک ہی ٹیگ واپس کرے۔
Elements h1 = document.select("h1");
System.out.println(h1);
ٹیگز ٹیگز حاصل کریں h1 آؤٹ پٹ:

<h1>Работа найдется для каждого</h1>
Elements titleElem = document.select("head > title");
ٹیگز حاصل کریں title۔ نشان ایک ٹیگ کے اندر اندر اندر >ٹیگز کا انتخاب کرتا ہے۔titlehead
Elements divs = document.select("body > div");
divاندر اندر ٹیگز حاصل کریںbody
Elements firstDiv = document.select("body > div:nth-child(1)");
divمیں پہلا ٹیگ حاصل کریں body۔ سیریل نمبر کے ذریعے ٹیگ کو بازیافت کرنا ایک برا طریقہ ہے، کیونکہ سائٹ پر اس کی پوزیشن تبدیل ہو سکتی ہے۔ مطلق پیرامیٹرز کا استعمال کرتے ہوئے ٹیگ کی وضاحت کرنا بہتر ہے۔ یہ پیرامیٹرز ہیں اوصاف classاورid
Elements contentElem = document.select("body > div.content");
divاندر اندر "مواد" کلاس کے ساتھ ایک ٹیگ حاصل کریں۔body
Elements idElem = document.select("#123");
آئی ڈی "123" کے ساتھ ٹیگ حاصل کریں
Elements divHeader = document.select("body > div.header.main :not(h1)");
divکلاس "ہیڈر" اور "مین" کے ساتھ ٹیگز حاصل کریں ، اندر اندر اندر body، لیکن ٹیگز کے بغیر h1 ۔ آؤٹ پٹ:

<div>
 Поиск вакансий
</div>
عناصر کے طریقے ایک بار جب ہمیں ایک فہرست مل جاتی ہے، Elementsہم اس سے ڈیٹا نکال سکتے ہیں۔ میں آپ کو یاد دلاتا ہوں کہ عام طور پر سلیکٹر ایک ٹیگ تلاش کرتا ہے، یعنی Elementsسائز 1 ہونا چاہیے ۔
elements.size();
ٹیگز کی تعداد ملی
elements.get(0);
پائے جانے والوں کی فہرست سے پہلا ٹیگ حاصل کریں۔
elements.text();
ٹیگ میں سرایت شدہ متن
elements.attr("href");
"href" وصف کی قدر
elements.outerHtml();
ٹیگ کی سٹرنگ کی نمائندگی اگر آپ کو فوری طور پر عنصر سلیکٹر حاصل کرنے کی ضرورت ہے تو براؤزر میں ڈویلپر پینل (f12) کھولیں، عنصر پر دائیں کلک کریں، "کوڈ دیکھیں"، ٹیگ پر دائیں کلک کریں، پھر "کاپی کریں" کاپی سلیکٹر"۔ ایسا سلیکٹر بہترین نہیں ہوگا، لیکن یہ فوری نتائج کے لیے کافی موزوں ہے۔ نتیجہ یہ ہے Jsoup لائبریری کے ساتھ کام کرنے کی بنیادی باتیں۔ لیکن یہ سائٹس کو پارس کرنے کے لیے کافی ہے۔ اعتماد سے کام کرنے کے لیے، آپ کو حقیقی سائٹس پر سلیکٹرز لکھنے کی مشق کرنے کی ضرورت ہے۔ Ps یہ لائبریری سطح 38 پر ایک بڑے مسئلے کو حل کرنے کے لیے استعمال ہوتی ہے۔ jsoup لائبریری کے ساتھ html کو پارس کرنا - 1jsoup لائبریری کے ساتھ html کو پارس کرنا - 3
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION