لہذا ہم سائٹ سے مخصوص معلومات حاصل کرنا چاہتے ہیں۔ آئیے دیکھتے ہیں کہ یہ مرحلہ وار کیسے کرنا ہے۔ سب سے پہلے ہمیں حاصل کرنے کی ضرورت ہے
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
۔ نشان ایک ٹیگ کے اندر اندر اندر >
ٹیگز کا انتخاب کرتا ہے۔title
head
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 پر ایک بڑے مسئلے کو حل کرنے کے لیے استعمال ہوتی ہے۔
GO TO FULL VERSION