[موسیقی بجانے] ROBERT KRABEK: ہیلو، لوگوں. میرا نام رابرٹ Krabek، ہے میں تم لوگوں کو تعلیم دی جائے گی ساتھ ویب کھرچنا کے لئے کس طرح روبی لائبریری ہے جس Nokogiri،، اور ایک کروم توسیع ہے جس میں کیمونو،. تو سب سے پہلے وہاں ایک جوڑے کی چیزیں آپ کو اس آپ کیا گیا ہے ہو سکتا ہے تو کر سکتے ہیں اب تک تمام کی psets کر اور آپ کے کام کی جگہ ہے ایک چھوٹا سا مکمل ہو رہی ہے. ہم اصل میں صرف جا سکتے ہیں آپ کے لئے ایک نئی جگہ بنانے صرف میں ایک نئے برانڈ منصوبے کرنا. آپ جاری رکھنا چاہتے ہیں تو CS50 سانچہ ID میں کام آپ فی الحال ہے کہ، آزاد محسوس کرتے ہیں، اور آپ کو صرف کر سکتے ہیں CFLAGS ساتھ Nokogiri انسٹال برابر منی nokogiri انسٹال. لیکن دوسری صورت میں تمہیں دکھاتا ہوں ایک نیا سیٹ اپ کس طرح. اور پھر یہ بنیادی طور پر ہے مزید تربیت پہیوں گر. آپ کے طور پر اگر اور آپ کو کوڈنگ رہے ہیں صرف شاندار یا کچھ میں کوڈنگ. ہم اس پر منتقل تو. تو یہ آپ کی موجودہ کاوچ سرفنگ کے 50 کی شناخت کا کہنا ہے کہ. تم بس یہاں سے Cloud9 پر جا سکتے ہیں. آپ اپنے ڈیش بورڈ پر جا سکتے ہیں. یہ ورک سپیسز ٹیب لانا چاہئے. اور پھر آپ صرف کلک کر سکتے ہیں یہاں، ایک نیا کام کی جگہ بنائیں. اپنے نئے کام کی جگہ کا نام، شاید ٹیسٹ، یا scraping کی. اور پھر یہاں یہ اپنی مرضی کے ٹیب پر کلک کریں، بجائے CS50 سانچوں ٹیب کے. اور پھر آپ صرف جا سکتے ہیں اور ایک نئے کام کی جگہ بنانے کے. میں نے پہلے ہی یہاں ایک کام کی جگہ پیدا کیا ہے. تو ہم اس کے ساتھ کام کیا جائے گا. اور آپ کو ایک نیا پیدا تو کام کی جگہ اپنی مرضی کے ٹیب کے ساتھ ایسا، آپ کو صرف منی انسٹال ٹائپ کر سکتے ہیں یہاں نہیں جا رہا ہے جس nokogiri،. ٹھیک ہے، یہ ایک چھوٹا سا منجمد ہے. لیکن آپ nokogiri نصب منی ٹائپ کر سکتے ہیں. اور یہ کہ تمام ہونا چاہئے کہ کی تنصیب کے لئے نہیں ہے. جیسا میں نے کہا، تم سے پہلے بھی ہو تو آپ CS50 سانچہ ID میں کام کرنے والے، آپ کو صرف CFLAGS ٹائپ کرنے کی ضرورت منی nokogiri انسٹال برابر. اور میں نے پہلے ہی نصب ہے یہاں تو میں ایسا نہیں کروں گا. لیکن ان کے لئے مندرجہ ذیل ساتھ، ایسا کرنے کے لئے آزاد محسوس کرتے ہیں. آپ کو آپ کے Nokogiri مل گیا ہے تو ایک بار کام کی جگہ یا لائبریری نصب، میں آپ کو تھوڑا سا دینے جا رہا ہوں روبی نحو میں ایک حادثے کورس کے Nokogiri روبی لائبریری ہے کیونکہ. تو آپ کو کچھ بنیادی جانتے ہیں کرنے کی ضرورت ہوگی Nokogiri ساتھ کام کرنے کے لئے روبی نحو. تو کچھ بنیادی اختلافات آپ استعمال کر رہے ہیں کی طرف سے شاید آپ کو کام کر رہا ہوں تو اب تک صرف سی اور پی ایچ پی میں، آپ کو کوئی قسم کے ساتھ متغیر کا اعلان. تم سیمیکالن کا استعمال نہیں کرتے، جس میں ایک راحت کی قسم ہے. اب کے ارد گرد کوئی قوسین ہے کے لئے یا جبکہ loops، مثال کے طور پر. تم صرف کوڈ کا ایک بلاک ہے، اور تو آپ اس کے آخر میں ختم. کوئی پلس نہیں ہے کے علاوہ یا مائنس مائنس، صرف اتنا جب کے لئے جانتے ہیں کہ آپ loops کے لئے کر رہے ہیں، صرف پلس برابر ہے اور مائنس برابر. اور اس کے بجائے ہیش کی، شامل ہیں آپ کو اس وقت ضرورت استعمال کرتے ہیں اور کریں گے کی کوشش کر رہے ہیں جو کچھ بھی لائبریری آپ کے پروگرام میں لوڈ کرنے کے لئے. روبی ایک مرتب زبان نہیں ہے. تو یہ ایک اور ریلیف ہے. یہ پی ایچ پی جہاں زیادہ اسی طرح کی ہے یہ ایک تشریح زبان ہے. آپ کسی بھی روبی سکرپٹ چلا سکتے ہیں روبی کی پیروی کے ساتھ آپ کو لکھنے اپنے سکرپٹ یا پروگرام کے نام سے. یہ ایک روبی پروگرام ہے کہ نشاندہی کرنے کے لئے، آپ کو صرف .rb بجائے سی کے ساتھ یہ ختم. اور متغیر وہاں ہو روبی میں سائز arrays کے، جس سے آپ جب سپر آسان ہے scraping کی اور شاید شامل کرنا چاہتے ہیں آپ کو ایک صف میں ہے scraped ہے کہ اعداد و شمار. آپ کو ایک نئی صف malloc کرنا پڑے نہیں ہے اور نئی صف میں پرانے سرنی کاپی. تم بس کے ساتھ شامل کر سکتے ہیں دو تیر علامات. اور کوئی حروف وہاں، وہاں ہو صرف ایک خط ڈور. تو یہ ایک تھوڑا آسان ہونا چاہئے. تو ہم صرف آپ کو کچھ دے دونگا کچھ بنیادی روبی نحو کا ترجمہ. تو یہاں آپ کی بجائے کہ دیکھ سکتے ہیں سلیش،، روبی میں تبصرہ کرنے آپ کو صرف پونڈ کا نشان استعمال. اور متغیر اعلان، آپ صرف متغیر برابر ٹائپ جو کچھ بھی آپ متغیر بننا چاہتا ہوں. وہ ڈور ہو سکتا ہے. آپ صف، ہو سکتا ہے جس آپ اقدار کے ساتھ آباد. رکھتا ہے اور پرنٹس کی طرح ہیں. ہمارے مقاصد کے لئے، فرق صرف اتنا واقعی ہے اس کے لئے کھڑا ہے جس، رکھتا ہے کہتے ہیں، صرف ایک نئی سطر رکھتا کردار جو میں آپ چھپائی رہے ہیں. ہم ایک چھوٹی سی دے تو یہاں مظاہرے، ہم اس with-- چلا سکتے ہیں ایک نئی ٹرمنل کھولنے. تم ان میں سے سب کو دیکھنے کے کر سکتے ہیں میری ٹرمینل میں ہیں کہ فائلوں. اور میں صرف چلاتے ہیں روبی، روبی intro.rb، یہ ہیلو پانچ باہر رکھتا ہے ماتھر، کوئنسی، کیریئر. ایڈمز. کہ تمام ہے تو وہاں ہے اعلان arrays کے کے لیے. سامعین: رابرٹ، آپ کر سکتے ہیں اپنے فونٹ تھوڑا بڑا؟ ROBERT KRABEK: جی ہاں. تم نہیں کر سکتے ہیں کیونکہ میں زوم کر سکتے ہیں بظاہر ٹرمینل فونٹ میں زوم. تو ہے کہ آپ کو پرنٹ کے لئے کس طرح ہے آپ کے ٹرمینل پر متغیر. آپ کو بھی استعمال کر سکتے ہیں ایک تار کے اندر متغیر. تو حال ہی پی ایچ پی میں، تم نے سیکھا ہے ہو سکتا ہے سٹرنگ پرکشیپ ہے کہ وہاں. تو آپ یہاں ایک نظر ڈالیں تو، میں تو ، تین متغیر، نام، لائبریری کا اعلان اور زبان، اور میں رکھتا، میں ایک سٹرنگ لکھنا، ہیلو میرا نام ہے. اور پھر بجائے پی ایچ پی سٹرنگ پرکشیپ کے ورژن جس میں اس طرح تھوڑا سا زیادہ لگ رہا ہے، اگر آپ کو ایک پونڈ نشانی ہے، اور گھوبگھرالی منحنی خطوط وحدانی، اور اس کے بعد متغیر کے نام. اور یہ کہ آپ کو پرنٹ گا کہ کس طرح، کا کہنا ہے کہ، جو کچھ بھی متغیر کا نام ہے. اور پھر تم بھی کر سکتے ہیں ڈور سلسلہ بندی کرنا. روبی یہ سپر بناتا ہے پلس کی علامت کے ساتھ آسان. آپ کو صرف ایک سٹرنگ ہے بائیں کے علاوہ ایک متغیر پر ایک سٹرنگ کے علاوہ ایک تار یا. میں نے اس کو پرنٹ، تو یہ چاہئے تاکہ صرف میرا نام رابرٹ ہے، خوش کہنا. میں تمہیں روبی میں nokogiri تعلیم دی جائے گی. اور صرف اس بات کی تصدیق کی اجازت یقینا case-- روبی تعارف ہے. ہیلو، میرا نام رابرٹ ہے. میں تمہیں روبی میں nokogiri تعلیم دی جائے گی. پر منتقل، اور بیانات تو، یہ ایک چھوٹا سا مختلف ہے آپ کو استعمال کیا جا سکتا ہے کی طرف سے آپ سی میں کام کر رہا ہوں تو آپ قوسین کی ضرورت نہیں ہے. آپ گھوبگھرالی منحنی خطوط وحدانی کی ضرورت نہیں ہے. اور اس کے بجائے اگر کسی اور کے، یہ ایک لئے concatenated elsif ہے. یہاں تو، میں اعلان کر دیا ہے تو ایکس ہم دیکھ سکتے ہیں کے طور پر یہاں،، ایکس اب بھی 5 ہے. X 3 سے کم ہے اگر ایسا ہے تو، یہ چھوٹا سا ڈال دیتا ہوں. 7، درمیانے درجے کے، اور بڑے کے مقابلے میں کم ہے تو. تو 5 درمیانے تعداد ہے. اور میں اختتام کے ساتھ کوڈ کے اس بلاک ختم. یہاں لوپ کے لئے میری ہے. اور یہ نحو بھی ہے تھوڑا سا مختلف. 0 پانچ صرف بنیادی طور پر 5 0 کے arrays کے قرار دیا ہے. تو صف میں پانچ سلاٹ ہے. اور پھر اس میں ہر عہدے کے لئے سرنی، میں میں incrementing ہو جائے گا. تو یہ 4 سے 5 0، یا 0 پرنٹ کرنا چاہئے. یہ درمیانے درجے کے پرنٹ کرنا چاہئے. اور میں صرف کے ذریعے بلیز گا. تم لوگوں کو رسائی حاصل کریں گے بعد میں اس کوڈ سے. تو تم لوگ یہ اپنے آپ کو چلا سکتے ہیں. تو یہ آپ کی بنیادی جبکہ لوپ ہے. یہ صرف J پرنٹنگ ہو جائے گا، ہم 5 مارا یہاں تک کہ 1 کی طرف سے incrementing کی. سپر فوری روبی حادثے کورس تقریب لکھنے کے لئے کس طرح. بجائے، کا کہنا ہے کہ، int کے جز ضربیہ تعداد، ہم صرف def کی ہے. اور بنیادی طور پر تم یہاں ایک تقریب کی وضاحت. یہ ہونے جا رہا ہے تقریب کے نام، اور یہ کسی بھی متغیر ہے کہ آپ تقریب میں منتقل کرنا چاہتے ہیں. آپ کے اندر اندر اگر بیانات حاصل کر سکتے ہیں. تم واپس آ سکتے ہیں. اس صورت میں، ہم ہیں ایک تکراری وضاحت لاگو جز ضربیہ تقریب. تو ہم صرف کام کرتا ہے فون اس طرح روبی میں. میں نے اس میں، وضاحت کی گئی ہے تو 3 میں منتقل، جز ضربیہ کال کر سکتے ہیں، اور پھر 3 تعداد متغیر ہو جائے گا میں تقریب کے اندر اندر استعمال کر سکتے ہیں. اس to_s صرف تبدیل کر رہا ہے ایک تار میں جز ضربیہ کی قیمت واپس. ورنہ یہ پھینک دیں گے ایک خرابی میں، اوہ کہہ ایک تار پرنٹ نہیں کر سکتے آپ کو یاد ہے کے طور پر کی وجہ سے، اس کی وجہ سے تار ڈال دیا جاتا ہے رکھتا جز ضربیہ ایک بڑی تعداد واپس آ گیا ہے. تو ہم نے اس کو تبدیل کر سکتے ہیں اس طرح کی طرح ایک تار پر. اور اس کے برعکس، آپ کو بھی تبدیل کر سکتے ہیں to_i ساتھ ایک عددی ایک تار. تو سب کچھ سپر آسان بنانے، میں صرف یہ باہر تبصرہ تو، کو بچانے کے اور جز ضربیہ تقریب چلانے. ہم کو دیکھنے کے لئے کے قابل ہونا چاہئے 3 کے اس جز ضربیہ 6. اور یہ کہ واقعی سچ ہے. تو ہے کہ روبی میں آپ کے حادثے کورس ہے. اور اب آپ جانتے ہیں کہ روبی، ہم پر جا سکتے ہیں بنیادی Nokogiri کرنے کے لئے قائم scraping کی. بنیادی طور پر آپ کیا کرنا ہے تمام، روبی میں، لائبریریوں کی ضرورت. اور ہمارے مقاصد کے لئے ہم استعمال کریں گے لائبریری OpenURI طور پر Nokogiri. اور پھر کیا آپ do-- اور یہ کروں گا آپ this-- لئے نحو دے تم میں گے کے طور پر زیادہ سے زیادہ یو آر ایل کو کھولنے ہے سی یو آر ایل کے لئے کھڑا ہے ایک cURL درخواست،. تو آپ کا یو آر ایل لے سوال میں ویب سائٹ. آپ کو ایک متغیر میں سٹور. اور پھر آپ کو اس کے ذریعے تلاش کر سکتے ہیں استعمال کرتے ہوئے منفرد HTML ٹیگ کے لئے متغیر سی ایس ایس کمانڈ. اور پھر آپ کر سکتے ہیں کی پیداوار جہاں بھی تم چاہتے کرنے کے لئے مواد. آپ کو ایک ڈیٹا بیس میں شروع کر سکتے ہیں. آپ ایک فائل میں پیداوار، یا یہاں تک کہ صرف پردے پر پرنٹ. تو ہم آپ کو ایک بنیادی کھرچنی دکھائیں گے. یہاں آپ کو ہم دیکھ سکتے ہیں تاکہ nokogiri کی ضرورت ہوتی ہے، کھلی URI کی ضرورت. آپ کا بنیادی سیٹ اپ، چلو ، دستاویز یا دستاویز یہ کہتے ہیں Nokogiri :: ایچ ٹی ایم ایل ہے جو، کھلی برابر OpenURI طرف سے ہمارے لئے فراہم کی کمانڈ لائبریری. اور ہم نے ان لوگوں کے لئے، تلاش کیا جائے گا کواڈ میں رہنے والے ہو سکتا ہے جو آپ، بوسٹن میں درج ہیں کہ بائک کے لئے بوسٹن Craigslist کے موٹر سائیکل حصے پر سائٹ. آپ کو مجریچت ہیں تو curl کے ساتھ، میں کروں گا اصلی فوری cURL کی کوشش کروں گا جو تم ظاہر. میں سے یو آر ایل کی تمام حاصل کرنے کے لئے کرنا چاہتا تھا تو Craigslist کے سائٹ، میں curl کے ٹائپ کریں تو، یہ صرف یو آر ایل کے تمام ڈھیروں Craigslist کے سائیکل سائٹ سے میرے ٹرمنل پر. کہ خاص طور پر نہیں ہے مفید میں نہیں ہے کیونکہ دستی طور پر کے ذریعے جانا چاہتے ہیں اور میں دیکھ رہا ہوں چیز کو تلاش. لیکن صرف تو آپ کر سکتے ہیں میں واقعی میں ہوں کہ دیکھیں آپ نظر آتے ہیں تو، حق کوڈ استعمال کر رہے ہیں bikes-- میں Craigslist کے لئے یو آر ایل پر کسی وجہ سے اسے نہیں مل سکا ہے. آپ کو اس صفحے پر نظر ڈالیں تو اور آپ یو آر ایل پر نظر آتے ہیں، اس کے لئے ایک جیسی ہونا چاہئے میں صرف بھیج کہ cURL کی درخواست. اور بے شک، کیا جا رہا ہے رہا ہے دستاویز متغیر میں ذخیرہ. تو آپ کو اپنے کوڈ میں واپس جانا جب، ہم تو اس دستاویز متغیر پر کام کر سکتے ہیں سی ایس ایس کا استعمال کرتے ہوئے. تو میں نے کے تمام حاصل کرنے چاہتا تھا کا کہنا span.txt ہیں کہ ٹیگ، اور اس ٹیگ کے اندر اندر تمام ایک ٹیگ. اور ہم کیوں کرنا چاہتے ہو سکتا ایسا، میں تم روتے سنا؟ ہم عنصر کا معائنہ، تو یہ آپ کو ایک دیتا ہے یو آر ایل کا ڈھانچہ ہے کہ کس طرح کی خرابی. میں کے ذریعے نیچے سکرال یہاں، آپ دیکھ سکتے ہیں کیا یہ مختلف میں سے ہر ایک عناصر کی نمائندگی کرتا ہے. تو شاید میں تک رسائی حاصل کرنا چاہتے ہیں یہ خاص طور پر عنصر. تو میں کروم ڈویلپر استعمال کر رہا ہوں اوزار عنصر کا معائنہ کرنے. اگر میں یہاں نیچے دیکھو کہ کر سکتے ہیں ایک مدت کے اندر اندر ایک ٹیگ ہے TXT کی ایک کلاس کے ساتھ ٹیگ. تو اس کے لئے ہو جاتا ہماری پہلا آپریشن ہے جس میں ٹیگ ہے جس doc.css مدت، ہے میں نے یہ سب اس یو آر ایل کے اندر کے لئے تلاش کر رہا ہوں. اور پھر TXT کی سی ایس ایس کی طرح زیادہ سے زیادہ چلتی ہے آپ کو صرف سی ایس ایس لکھ رہے ہیں جب کرتا ہے کی طرف سے آپ ایچ ٹی ایم ایل فائلوں میں ایک کلاس کی وضاحت. تو یہ خاص طور پر آپریٹر گا TXT کی کلاس کے ساتھ ایک مدت ٹیگ کی وضاحت. اور پھر میں نے ایک جگہ چھوڑ دیں تو، یہ تو اس ٹیگ کے اندر اندر جائیں گے اور پھر ایک اس کے اندر اندر ایک ٹیگ جائے. تو میں صرف اس ڈال دیا تو ٹرمینل، مجھے ایسا کرنا چاہیے بنیادی طور پر ہر چیز کو دیکھنے کے لئے کے قابل ہو جائے اس طبقے TXT کے اس مدت کے اندر اندر ہے. تو ہم نے ایک جانے دے دونگا. روبی Craigslist کے-کھرچنی. اور یقینا کہ ہمیں ان میں سے سب ہے مختلف لسٹنگ کے ٹیگز کہ Craigslist کے صفحے پر ہیں. ہمیں واپس جانا اگر ایسا ہے تو، ہم اس کو تبدیل کر سکتے ہیں کچھ میں ایک چھوٹا سا زیادہ مفید. شاید ہم صرف لنک چاہتے. اس ٹیگ کے اندر اندر، میں بھی کریں گے کیونکہ راستے کے لنک ہے اس صفحہ پر جاتا. تو آپ کو یہاں اس کوڈ پر نظر ڈالیں تو، کیا میں کروں گا، اس کی بجائے سی ایس ایس کا ہے میں at_css جا سکتے ہیں. اور یہ تو صرف پہلے ہو جائے گا ان تمام چیزوں کے عنصر. میں تھے تو میں اس کو ایسا کرنے کے لئے کوڈ میں صرف پہلے کا مظاہرہ کیا، اس کی بجائے تمام واپس لوٹنے کے اس کی، یہ صرف کرے گا ان میں سے سب سے پہلے واپس. at_css آپریٹر کام کرتا ہے کس طرح ہے. تو ہم محفوظ کرنا چاہتے ہیں راستہ سب سے پہلے ایک ٹیگ کے تمام. اور ایک امریکی a-- دے گا، کیونکہ تو ہم اب بھی سی ایس ایس استعمال کرنے کے لئے جا رہے ہیں. لیکن اس کی وجہ سے دینے کے لئے کی جا رہی ہے ہمیں واپس کرنے کے لئے ایک پوری صف، ہم تک رسائی حاصل کرنے کے لئے جا رہے ہیں پہلا عنصر. تو یہ ایک طریقہ ہے کہ آپ کر سکتے ہیں ہے اگر آپ کسی خاص عنصر تک رسائی حاصل عناصر میں سے ایک صف ہے کہ واپس آ جاتا ہے، آپ کو کچھ علاج کر سکتے ہیں کی وجہ سے بنیادی طور پر ایک سرنی کے طور پر سی ایس ایس کی واپسی،. اور پھر ہم تک رسائی حاصل کرنے کے لئے جا رہے ہیں اس کی ہایپر ٹیکسٹ ریفرنس وصف. تو آپ کو ایک نظر ڈالیں تو، تو آپ، یہاں بہت قریب سے دیکھا صرف بنیادی طور پر اگر آپ کو یو آر ایل بار دیکھو، یہ راستہ ہے کہ آپ scraping کی جا رہے ہیں. ہم صرف اس کو دوبارہ چلائیں تو، اور ہم نے اسے محفوظ کر لیا ہے بات کو یقینی بنانا. تم گھر پر چیک کر سکتے ہیں. یہ اصل میں اس لنک کے ساتھ میل کھاتا ہے. تو کیوں نہ ہم اس کا استعمال کرنا چاہتے ہیں؟ آپ کھرچنا کرنا چاہتے ہیں تو یہ ہے اور صفحے طرح کے لنکس کی ایک صفحے Craigslist کے، کرتا ہے تم پھر جانے کے لئے چاہتے ہو سکتا ہے ان لنکس میں سے ہر ایک میں اور پھر کھرچنا اس کے مواد، جس ہم کیا کرنے جا رہے ہیں بالکل وہی جو ہے. آپ کو ایک کے طور پر راستہ ہے تو ایک بار متغیر، میں اب واقعی یہ باہر پرنٹ کے بارے میں پرواہ. میں صرف ایک متغیر کے طور پر محفوظ کرنے کی ضرورت. اور پھر میں نے ایک اور رسائی حاصل کرسکتے ہیں میں تک رسائی حاصل اسی طرح صفحہ پہلی جگہ میں دستاویز. یو آر ایل کے ساتھ چھوڑ کر، ہم جا رہے ہیں سٹرنگ پرکشیپ استعمال کرنے کے لئے کی طرح میں بیان کر رہا تھا روبی پہلے پر شامل کرنے کے لئے جڑ کے اختتام پر راستہ. تو کیا ایسا کرنے کے لئے جا رہا ہے اس راستے پر ڈال کرنے کے لئے جا رہا ہے میں نے پہلے کھرچ کہ اور پھر اس کی باری ہے ایک نیا آئٹم میں، آپ چاہتے ہیں جو کچھ بھی مثال کے طور پر اندازہ لگانے والے، first_listing کال. لیکن مجھے چھوڑنے کے لئے جا رہا ہوں اب کے لئے اشیاء پر، کہ میں یہاں استعمال کر رہا ہوں کیا ہے کیونکہ. تو میں وضاحت حاصل کرنے کے لئے کرنا چاہتا تھا کا کہنا ہے کہ Craigslist کے میں پہلی تعیناتی کا. تو میں یہاں نیچے جاؤ گے. میں عنصر کا معائنہ پر کلک کریں گے ایک بار پھر، اس کی وضاحت ہے کیونکہ. میں یہاں نیچے جاؤ اور دیکھنا چاہتے میں تلاش کر سکتے تو میں کس طرح ہو سکتا ہے اس منفرد ٹیگ کے لئے تلاش کرنے کے قابل ہو. اور اس معاملے میں، یہ ہے ہماری طرف جاتا ہے جس میں ایک کی شناخت، کے لئے تلاش کے بارے میں ہمارے اگلے طریقے سے ٹیگ، جس میں ایک hashtag کے ساتھ ہے. کلاس کے لئے، آپ کر سکتے ہیں تو ڈاٹ آپریٹر کا استعمال کریں. تو TXT کی، TXT کی ایک کلاس کی وضاحت ہے ہیش جبکہ ایک ID کی وضاحت کرتا ہے. تو اس صورت میں، ٹیگ ہے سیکشن، اور شناختی postingbody ہے. تو یہ جاتا ہے اور پتہ چلا ہے first-- ہم ہیں کیونکہ اس جاتا at_css-- استعمال کرتے ہوئے اور پہلا عنصر پتہ چلا ہے کہ سیکشن کے ٹیگ کے ساتھ آتا ہے اور postingbody کی شناخت. اور پھر آپ کو متن کے عنصر تک رسائی حاصل کر سکتے ہیں اس شے کے مماثل کے ساتھ واپس آ. اور پھر ہم محفوظ کر سکتے ہیں تفصیل میں. تو اب ہم ایک ہے کہ متغیر وضاحت، ہم کہہ، ایسا کرنے کے قابل ہو سکتا ہے فائل I / O. تو روبی میں فائل I / O / O میں فائل کی طرح ہے C میں ہم نے ایک فائل کو کھولنے جہاں. ہم اس پر لکھ سکتا ہے. اور پھر ہم اس فائل کو بند کریں گے. تو یہاں، ہم صرف نام رہے ، کچھ صوابدیدی متغیر فائل. ہم نے بھی یہاں صرف یہ ڈال کر سکتے ہیں. ہم ذخیرہ کرنے کر رہے ہیں کہ ایک متغیر ہے File.open کے ساتھ کھلی فائل. اور ہم اس فائل میں لکھ رہے ہیں تو ہم W آپریٹر کے ساتھ اسے کھولو. اور پھر ہم میں سٹرنگ ڈال .puts آپریٹر کے ساتھ دائر. اور پھر ہم متغیر ڈال دیا ہے کہ ہم اس کے اندر فائل میں لکھنا چاہتا ہوں. اور پھر ہم صرف فائل کو بند. تو ہم آگے بڑھیں اور اس چلاتے ہیں، یہ ایک دستاویز پیدا کرنا چاہئے description.txt جس کے ساتھ کریں گے اس کے اندر اندر اس کی وضاحت ہے. اگر ایسا ہے تو مجھے کوئی اندازہ لگانے والے کو چلانے کے. یہ، کے ساتھ ایک ٹیکسٹ فائل تیار ہے امید ہے کہ، ایک ہی بات. تاکہ ایک نئے پوسٹنگ وہاں ہو سکتا ہے میں بات کر رہا ہوں جبکہ کہ آیا ہے. وہاں گیا ہے کی طرح اور یہ لگ رہا ہے. تو ہم نے اس کلاسک موٹر سائیکل پر جاتے ہیں، 1962 1966 کرنے کے لئے، اس سے ملنے کے لئے لگتا ہے. اور تم وہاں جاؤ. تو ہے کہ سب سے زیادہ بنیادی ہے scraping کی فعالیت. ہم بجائے کر سکتے ہیں صرف اس فائل پر لکھنا، ہم ایک صف میں چیزوں کو شامل کر سکتے ہیں. میں نے تین arrays کے اعلان تو، عنوان، قیمت، اور وضاحت. اور اب ہم دستاویز شے پر کام کر رہے ہیں. ہم کے ذریعے جا سکتے ہیں span.txt کی تلاش. اور یہ ایک سرنی، یاد یہ پتہ چلا ہے کہ تمام اشیاء کی. اور پھر روبی میں، آپ کو صرف استعمال کر سکتے ہیں ہر شے کے ذریعے iterate کرنے .ہر صف کی. اور پھر ہر شے کے لئے، میں نے صرف اسے فون کرنے جا رہا ہوں ، کہ ہے کیونکہ ایک لنک یہ بنیادی طور پر کیا. تو میں ہر link.css ڈاٹ a.hdrlnk ڈال دیا تو، یہ اصل لنک پر جا رہا ہے اور اس کے لنک دوسرے کے اندر اندر تلاش HTML عنصر اور اسی کلاس. اگر ایسا ہے تو ہم کو یاد کیا اس،، span.txt تھا آپ مجھے صرف واپس جانے see- کر سکتے ہیں span.txt اندر حقیقی quick-- ہم دوسری کلاس کی ایک بہت ہے. تو span.txt اندر، ہم تلاش کر رہے ہیں ایک کلاس hdrlnk کے ساتھ ایک ایک ٹیگ کے لئے. تو مجھے صرف اس کو تلاش کرنے کی آپ لوگ حقیقی فوری. آپ یہاں دیکھ سکتے ہیں تو، یہ ایک ایک ٹیگ ہے اس طبقے TXT کی مدت کے اندر اندر ہے اس طبقے hdrlnk ہے. اور یہ کہ بے شک کیا ہے ہم حاصل کرنے کی کوشش کر رہے ہیں. تو کیا اب ہم تمام ذخیرہ کرنے کے لئے کوشش کر رہے ہیں عنوان کے اندر ان لنکس میں سے. اور پھر ہم پرنٹ کرنے کے لئے جا رہے ہیں ان لنکس میں سے ہر ایک. نہیں، معذرت. ہم باہر پرنٹ کرنے کے لئے جا رہے ہیں ان میں سے ہر ایک کی قیمت. تو واقعی میں اس کو چلانے کے فوری اور یہ کیا کرتا ہے کو دیکھنے کے. تو یہ صرف بنیادی طور پر چلے گئے لنکس میں سے ہر ایک کے ذریعے کے نتیجے میں،، سوال میں ٹیگ رسائی اور پھر قیمت باہر نکالا. اور یہ کیا ہے اس کے بعد کی وجہ سے آپ کے عنوان میں سب کچھ ہے، ہم صرف وہاں عنوان محفوظ کیا جاتا ہے. ہم صرف لنک محفوظ کیا جاتا ہے سرنی عنوان کے اندر اندر. اور لوپ آپریشن کے لئے اس میں، جہاں کے بجائے a.hdrlnk میں جانے کا، ہم ایک span.price لئے تلاش کر رہے. میں صرف واقعی فوری طور پر تلاش کر سکتے ہیں تو قیمت، آپ کے عنصر کا معائنہ تو، تم نے اسے ایک مدت ہے کہ نظر آئے گا قیمت کی کلاس کے ساتھ. اور یہ کہ کس طرح ہے ہم وہاں قیمت حاصل کر رہے ہیں. تو ہے کہ واقعی ہے scraping کے بنیادی کیس. یہ ہے کہ آپ سب کو ملے گا کہ کس طرح ہے ایک صفحے پر عناصر کہ، کا کہنا ہے کہ، آپ پہلے سے ہی جانتے ہیں کے یو آر ایل. ہم نے ایک حاصل کرنے کے لئے چاہتے ہیں تو ، گہرائی میں کم ہم صفحات کے اندر اندر کے صفحات کھرچنا کر سکتے ہیں. یہ مثال کے طور پر، میں کروں گا ایک CSV فائل میں لکھنا ہو. تو میں یہاں CSV اپ کی ضرورت ہوتی ہے کر رہا ہوں روبی نہیں ہے کیونکہ، خود کے اندر، فعالیت صرف پیداوار CSV فائلوں کو. تو اس سپر آسان ہے. مجھے صرف اگلے کرنے کے لئے جانے دو. ہم فائل I / O احاطہ. تو اس یہ C. میں کتنا اسی طرح کی ہے اور ہم کیمونو پر منتقل کرنے سے پہلے، میں صرف آپ کو کس طرح واقعی میں فوری دکھائیں گے سائٹس کے اندر اندر سائٹس کھرچنا. تو ہم پہلے سے ہی سیکھا روبی میں arrays کا اعلان کرنا. تو میں صرف ایک اعلان کر رہا ہوں صوابدیدی arrays کے گروپ کہ میں کے اندر اندر ڈیٹا ذخیرہ کیا جائے گا. دستاویز اسی طرح کام کر رہا ہے یہ گزشتہ فائل میں کے طور پر کیا. ہم تلاش میں جا رہے ہیں span.txt کے ہر. ہم نے پہلے ہی جانتے ہیں کہ. کہ کنٹینر ہے جو ہر ایک کے اندر لنک ہم چاہتے ہیں کہ اعداد و شمار کے تمام ہے. تو یہاں کیا ہم کر رہے ہیں ہر ایک کے لئے ہے مدت کلاس TXT کے لنک، ہم جا رہے ہیں اور ہم ایک ٹیگ تلاش کر رہے ہیں اس کا پہلا عنصر کو تلاش کرنے. ، سی ایس ایس ایک سرنی، یاد رکھیں ہے کے طور پر تو آپ کو صرف اس تک رسائی حاصل نہیں کر سکتے. ہم سب سے پہلے عنصر کو تلاش کرنے کے لئے جا رہے ہیں. یہ ایک کی ایک صف ہے یہاں تک کہ اگر شے، آپ کو یہ نحو کا استعمال کرنا پڑے، اور پھر href کی وصف باہر ھیںچو. تو ہم نے اس سے پہلے کیا. تو اس سے واقف نظر آنا چاہئے. اور اس طرح اب ہم ایک صف ہے ہمارے لنکس میں سے سب سے کہا جاتا ہے راستے ہم استعمال کرتے ہیں کرنا چاہتے ہیں جا رہے ہیں کہ. تو ہم سب کے اس صف ہے تو ہم استعمال کرتے ہیں کرنا چاہتے ہیں کہ راستے کی، اس کے بعد ہم ہر ایک کے لئے ایک شے تشکیل دے سکتے ہیں ان صفحات میں ہم اس صفحے کو کھولنے جب. ہم بھی پر دیکھا کے طور پر تو پہلے، جہاں نحو راستے کے ساتھ سٹرنگ پرکشیپ کر یہاں، تو نحو صرف راستہ کے لئے ہے. اور مجھے یہ نام سکتا ہے متغیر کسی بھی صوابدیدی نام. یہ ضروری ہے. یہ تمہیں کہ صف ہے ہر عنصر تک رسائی حاصل کرنے ہو. لیکن آپ کے راستے میں راہ کے لئے کہنا ہے کہ جب، اس کے راستے میں ہر عنصر کے لئے کا مطلب ہے، راستہ یہ کہتے ہیں، اور اس کا استعمال. یہ جب آپ کی طرح بنیادی طور پر ہے لوپ کے لئے ایک ہے اور آپ میں int استعمال. لہذا آپ کو اس راہ علاج کر سکتے ہیں incrementing کی ہے کہ متغیر. اور پھر ان میں سے ہر ایک کے لئے، ان لنکس میں سے ہر ایک میں جانے. ہم شے کے صفحے میں ذخیرہ کرنے کر رہے ہیں کیونکہ، تو ہم ہر وقت ایک نئے صفحے پیدا کر رہے ہیں ہم اس تک رسائی حاصل. اور پھر اس نئے صفحے کے اندر اندر، آپ کو مل جائے span.postingtitletext، span.price، اور پھر سیکشن # postingbody. ہم نے پہلے ہی سیکشن # postingbody احاطہ ہم تفصیل دیکھا جب. تو ہم Craigslist کے پوسٹ میں دیکھ جا سکتے ہیں، آپ کو صرف عنوان میں تلاش کر رہے ہیں، آپ اسے یہاں دیکھ سکتے ہیں مدت postingtitletext. یہ وہاں ہے اور اس وجہ سے ہے. اور پھر قیمت کے لئے، آپ کر سکتے ہیں قیمت کی مدت کلاس کے ساتھ اس تک رسائی حاصل. تو ہم بھی شاید شاید یو آر ایل کو محفوظ کرنا چاہتے. تو ہم صرف اس کو چلانے گے ایک بار پھر، ایک صف میں اس کی دکان، آپ تلاش کر رہے ہیں کیونکہ Craigslist پر، تم شاید تو، ایک طریقہ کرنا چاہتے ہیں جا آپ کو دلچسپی ہے کہ کچھ دیکھیں واپس سائٹ پر جانے کے. تو کیا تم صرف محفوظ کرنا چاہتے ہیں حوالہ جات خاطر لئے یو آر ایل. یہ بنیادی طور پر ہے لوپ کے لئے کے لئے ایک اور نحو. میں صرف اس کی بجائے paths.each کر سکتا کے انڈیکس کے ساتھ راستے میں راستے کے لئے. اور یہ نحو روبی ہے for-- راستے، ہم نے یہاں کیا کیا ہے ہر شے کے لئے ایک متغیر قرار دیا. اور انڈیکس کی طرح برتاؤ کرتی ہے loops کے لئے C میں میں. تو آپ کو ٹریک رکھ سکتے ہیں انڈیکس کیا ہے. تو یہاں صرف ایک ہے تھوڑا آسان بات تم کھرچنی چلا رہے ہیں جب کے لئے. آپ کے صفحات کے سینکڑوں scraping کے کر رہے ہیں، پھانسی نہیں ہے اس بات کو یقینی بنانے کے لئے، یہ، صرف پیداوار گے میں نے اس صفحہ تک رسائی حاصل کر رہا ہوں، اور اس بات کو یقینی بنانے یہ اب بھی جاری ہے. لیکن ہمارے مقاصد کے لئے، کیونکہ ایک سو اشیاء موجود ہے، میں ان میں سے صرف تین تک رسائی حاصل کرنے جا رہا ہوں ہم یہاں وقت سے باہر چلانے نہیں ہے تاکہ. ہم اس سے ملے لیکن اس سے پہلے، میں صرف ہوں تم واقعی میں فوری ظاہر کرنے کے لئے جا رہا، میں نے عنوان لکھنا جائے گا، قیمت، وضاحت، اور یو آر ایل میں ہے scraped ہے کہ لنکس میں سے ہر ایک. اور پھر یہ صرف ہے CSV لائبریری کے لئے نحو. تم ایک CSV کھولنے. یہ میں نے اسے فون کرنے جا رہا ہوں کیا ہے. لکھ سکتا ہوں سے اسے کھولو. اور پھر CSV فائل ہو جائے گا کہ آپ میں سب کچھ inputting رہے ہیں. اس کے لئے صرف ایک وویک چیک ہے مجھ سے یہ چل رہا ہے کہ میں جاننا. اور یہ میرا وویک چیک ہے یہ مکمل ہے کہ میں جاننا. تو میں ایک قطار میں عنوان ڈال رہا ہوں CSV، قیمت، یو آر ایل، وضاحت، تمام CSV میں قطار میں. ہم جاکر رن تو اس now-- اور میں صرف مجھے اندازہ لگانے کی بجائے محفوظ کر لیا ہے اس بات کو یقینی بنانے کے صرف ٹرمینل پر یہ لکھنا، ہم ایک CSV ہونا چاہئے تیار ہے کہ فائل. لہذا ہم یہاں CSV دیکھ سکتے ہیں تیار کیا گیا ہے کہ فائل. یہ کی پیداوار ہے میں صرف بھاگ گیا ہے کہ scape کے. آپ یہاں دیکھ سکتے ہیں کے طور پر، تک رسائی صفحہ 0، 1، 2، 3. ان عنوانات ہیں، قیمتوں، وضاحت. اور ہم اس CSV پر نظر ڈالیں تو ہم پیدا ہے کہ فائل، آپ کو اس کی یہاں سے outputted دیکھ سکتے ہیں. یہ ایکسل نہیں ہے، تو یہ نہیں ہے قطار اور کالموں میں فارمیٹ. لیکن تم کس طرح سوچ سکتا ہے یہ فارمیٹ کیا جا سکتا ہے. CSV علامت سے علیحدہ اقدار کے لئے کھڑا. لہذا آپ کو اس ایک قطار ہو سکتا ہے تصور کر سکتے ہیں. اور ہر کوما گے ایک علیحدہ کالم کی طرف اشارہ ہے. caution-- کے صرف ایک لفظ کبھی کبھی آپ کو ہیں کوما کی ایک بہت کے ساتھ چیزوں scraping کی. آپ لکھنا کر رہے ہیں تو ایک CSV فائل میں، یہ شاید پیداوار نہیں آپ کو لگتا ہے ہو سکتا ہے راستہ. تو ہے کہ بنیادی طور پر تمام ہے بنیادی HTML scraping کے لئے نہیں ہے Nokogiri ساتھ صفحات. انٹرنیٹ کیا جا رہا تو جدید یہ آیا ہے کے طور پر ایک سے زیادہ خود کار طریقے سے اور GUI کے ساتھ کم مضبوط سہی ورژن، مختلف ویب سائٹس scraping کے ورژن. اور ہمارے مقاصد کے لئے میں مظاہرہ کیا جائے گا کیمونو نامی ایک کروم توسیع. اور تمہیں کیا کرنا ہے کہ آپ تشریف ہے آپ کھرچنا کرنا چاہتے ہیں اس صفحے پر. آپ اپنی دلچسپی کے میدان پر کلک کریں. آپ کے کھیتوں مدرج، یہ خود کار طریقے وجہ یہ سوچتا ہے کہ کیا پتہ لگانے کے آپ scraping کی جائے کرنا چاہتے ہیں، اور پھر آپ صرف ایک API پیدا. ہم تھے تو اس پر مظاہرہ کرنے Craigslist کے، یہ اصل میں کام نہیں کرے گا. اور اس میں واپس جا رہا تھا کیا ہے اس کے طور پر مضبوط نہ ہونے کے بارے میں کہہ. یہ مصیبت Api پیدا ہے. لیکن ایک مظاہرے کے طور پر یہ کیا کرے گا، آپ کروم توسیع انسٹال ہے تو، تم کرتے ہو سب آپ کو اس پر کلک کریں. یہ صفحہ Kimonofies، اور پھر آپ کو آپ سکرپٹ کرنا چاہتے چیز پر کلک کریں. تو میں پر کلک کریں کرنے کے لئے تھے تو کہ، اس کو اجاگر کرے گا کیا یہ سوچتا ہے میں چاہتا ہوں اس صفحے سے دور scraping کی ہو. تو شاید میں اس لسٹنگ کال. یہ میں نے منتخب کیا ہے کہ کس طرح بہت سے اشیاء ہے. اور میں صرف اس بات کی تصدیق یا کچھ انکار کر سکتے ہیں دیگر تجویز پیش لسٹنگ اس میں اضافہ حاصل کرنے کے لئے کیا ہے scraped کیا جائے گا. تو اب ہم وہاں دیکھ سکتے ہیں ایک سو اشیاء کو منتخب کیا. میں نے ایک اور میدان کرنا چاہتے ہیں کہ میں بھی اس سے متعلق ہے جس کھرچنا، میں قیمت کھرچنا کرنا چاہتے ہیں کا کہنا ہے کہ اس کے ساتھ ساتھ، اس کے بعد میں بھی ایسا ہی کر سکتے ہیں. تو یہاں یہ ہے کہ کس طرح کا مظاہرہ ہے بہت کم مضبوط، اب یہ ہے کیونکہ بجائے شہر اٹھا میں چاہتا ہوں کہ صرف قیمت. اور اب یہ 200 چیزوں کو اٹھایا ہے. تم واپس جاؤ اور خارج کر سکتے ہیں. تم نے پھر کوشش کر سکتے ہیں. لیکن کوئی ضمانت. یہ کبھی کبھی کس طرح کام کرتا ہے. آپ کو یہاں دیکھ کے طور پر، اب یہ یہاں 96 تک کا کہنا ہے کہ. یہ زیادہ تر روابط پر اٹھایا ہے آپ چاہتے ہیں کہ کھرچنا، لیکن نہیں ضروری نہیں کہ تمام ان میں سے. کیمونو کا ایک مفید آلہ اگرچہ آپ اعلی درجے کی خصوصیات پر جا سکتے ہیں ہے یہاں، اعلی درجے کی جانا، اور یہ آپ کو دکھائے گا منفرد کی خرابی ایچ ٹی ایم ایل تک رسائی حاصل کرنے کا طریقہ آپ کھرچنا کرنا چاہتے ہیں کہ ٹیگ. تو لسٹنگ کے لئے، آپ کو یہاں پر نظر ڈالیں تو، آپ div P مدت مدت تک رسائی حاصل ہے، تم صرف اصل میں استعمال کر سکتے ہیں آپ Nokogiri کوڈ میں یہ، ہم کہاں span.txt تھا اس سے پہلے لسٹنگ میں سے ہر ایک تک رسائی حاصل کرنے. میں صرف متن چاہتے ہیں تو لسٹنگ کے اندر اندر، میں کر سکتا ہوں ان پٹ div کی جگہ P خلائی مدت خلا مدت کی جگہ ایک، اور یہ ایک ہی اثر حاصل کریں گے. اور تم میں سے ان لوگوں کے لئے دلچسپی کون ہیں باقاعدہ اظہار کا استعمال کرتے ہوئے، یہ بھی آپ کو باقاعدگی سے دینا ہوتا ہے ان پٹ کے لئے سٹرنگ کے اظہار قسم چیزوں کو تلاش کرنے آپ کو تلاش کرنے کی کوشش کر رہے. تو ایک اور ٹھنڈا خصوصیت ہے آپ paginate کر سکتے ہیں جہاں کیمونو کی، جس میں صرف میں کھرچنا کر سکتے ہیں نہیں ہے اس صفحے کے نتائج، میں نے اس چھوٹے پر کلک کر سکتے ہیں یہاں بٹن، صفحہ بندی، بٹن ہوتا وضاحت اگلے صفحے پر مجھے لینے، اور پھر یہ صرف یہ ہے کہ پتہ چل جائے گا یہ اگلے صفحے پر iterate کرسکتے ہیں، اور پھر the-- طور پر طویل عرصے کے تمام کھرچنا یہ course-- کی ایک ہی شکل کے طور پر اس کے ساتھ ساتھ ان لنکس میں سے تمام scape کے. کیمونو نہیں کرنا چاہتی کیونکہ پس ہم نے کیا کیا، Craigslist کے ساتھ مل کر کام میں نے ہارورڈ کرمسن Kimonofied ہے ہے. میں کی طرح میں سے کچھ باہر نکالا ہے اوپر مضامین، یہاں کی تصدیق نمایاں. ان کا کہنا ہے کہ. میں اس API مرتب کیا ہے وقت سے قبل آپ کے لیے. لیکن آپ کیا کریں گے ورنہ کیا آپ کو صرف کیا کلک کریں ہے. اپنے API تفصیلات میں درج کریں. کرنے کے لئے مقرر تو خود کار طریقے سے یا دستی کرال. تو آپ کو اپ ڈیٹ کر سکتے آپ ڈیٹا ہر 15 منٹ، ہفتہ وار، روزانہ، آپ چاہتے ہیں جو کچھ بھی. اپنے API نام. API کا بنا. آپ کے فائدے کے لئے، میں نے پیدا کیا ہے پہلے سے سامنے کے صفحے API کرمسن. تو آپ کو صرف ایک کی تخلیق کیمونو اکاؤنٹ، اور یہ آپ کے لئے اپنے تمام APIs کا ذخیرہ کیا جائے گا. تو بنیادی طور پر یہ کہ تمام ہے آپ الگ الگ مختلف scrapes کے. ہم یہاں دیکھو تو، یہ ہے میں جمع کر دیا ہے کہ رائے لنکس. یہ شامل ہیں میں جمع کر دیا ہے کہ لنکس. اور ان سب سے زیادہ پڑھ رہے ہیں میں جمع کر دیا ہے کہ لنکس یہ سب سے زیادہ حالیہ API scape کے سے. آپ یہاں دیکھ سکتے ہیں اگر ایسا ہے تو، ان، شامل کیا جائے گا یہ رائے ہو جائے گا، اس مثال میں، جس، میں ان مشترکہ ہے ایک مجموعہ میں. لیکن آپ کو صرف اس کے ساتھ کے ارد گرد ادا تو تھوڑا سا، آپ اسے تقسیم کر سکتے ہیں اور تاہم یہ تقسیم آپ کے طور پر طویل عرصے سے کرنا چاہتے ہیں فارمیٹنگ کے طور پر تھوڑا سا مختلف ہے. صرف اس کے ساتھ کے ارد گرد کھیلنے کے لئے، کرال، downsides میں سے ایک قائم آپ کو صرف کرال کر سکتے ہیں ایک وقت میں 25 صفحات پر. وہ محدود عوامل میں سے ایک ہے. لیکن یہاں، آپ کو اس کے مقرر کیا ہے تو دستی کرال کے لئے، اس آپ یہ بتا سکتے ہیں کہ کس طرح ہے آپ کے ڈیٹا کو اپ ڈیٹ کرنے کے. اور یہاں آپ کو آپ کے کرال تاریخ دیکھ سکتے ہیں ہر چیز کا آپ کو کرال ہے کہ. اور تم لوگ واپس جا سکتے ہیں، سائن اپ، تمام مختلف طریقوں کے ساتھ کے ارد گرد ادا کہ آپ کو نظر ثانی کرنے اور آپ کے ڈیٹا کو استعمال کر سکتے ہیں. کیمونو کے لئے قائم کیا جا سکتا ہے لنکس اندر لنکس کھرچنا. اور آپ کو پہلے کی طرف سے ایسا کرے گا لنکس کی ایک فہرست scraping کی، اور پھر ایک کے طور پر اس API کا استعمال ایک API کے لئے نقطہ دور کود آپ سکرپٹ بنانے کے کہ. لیکن اس سے زیادہ پیچیدہ ہے کیا آج ہم میں حاصل کرنے کے لئے جا رہے ہیں. تو اس کیمونو ہے. ہم پیشہ کے بارے میں بات کریں گے اور Nokogiri اور کیمونو کی cons. Nokogiri، یہ واقعی تیز ہے. یہ ٹیسٹ کرنے کے لئے آسان ہے. آپ کو صرف کچھ رکھتا ہے کر سکتے ہیں کنسول، آسان ترتیب دینے کی. تم بالکل وہی جو فیصلہ کر سکتے ہیں آپ کھرچنا اور دکان پر چاہتے ہیں. کوئی صفحہ حدود نہیں ہیں. میں واقعی کی طرح کھرچنا اس کا استعمال کیا 1800 جنوبی افریقہ اسکول کی ویب سائٹ میں نے اس ایک انٹرنشپ کے لئے ای میلز کے لئے. تو ہے کہ، ممکن ہے بہترین پریکٹس اگرچہ سکرپٹ کو تقسیم کیا جائے گا. اس وقت، ناکام ہو جاتا ہے کیونکہ آپ کو کچھ بھی نہیں ملتا. لیکن آپ کو ایک سو کرتے ہیں تو، شاید ایک وقت میں 200 صفحات، پھر تم میں سے کچھ موقع کم از کم خاص طور پر، ٹکڑوں یہ ہو رہی آپ کو برا انٹرنیٹ ہے. بدقسمتی سے یہ صرف HTML کھرچنا کر سکتے ہیں. آپ ہیں تو متحرک طور پر لوڈ pages-- اور میں آپ کو ایک مثال کے طور پر دکھائیں گے ایک دوسرے کی میں کیاک کی طرح Nokogiri بدقسمتی کہ کھرچنا نہیں کر سکتے ہیں. لیکن کیمونو بھی استعمال کرنے کے لئے آسان ہے. تم نے دیکھا کے طور پر، یہ بنیادی طور پر ہے ایک نقطہ اور پر کلک کریں. یہ جاوا سکرپٹ کھرچنا کر سکتے ہیں. بدقسمتی سے، ایک زیادہ سے زیادہ ہے آپ کھرچنا کر سکتے ہیں کس طرح بہت سے صفحات پر. کبھی کبھی یہ ایک چھوٹا سا ہے تشکیل کرنے کے لئے مشکل. یہ الجھن ہو جاتا ہے. لیکن یہ یقینی طور پر ہے کچھ غور کرنے کے لئے آپ کو ایک حاصل کرنے کی کوشش نہیں کر رہے ہیں تو سپر مضبوط قابل کھرچنا. آپ کو صرف حاصل کرنے کے لئے چاہتے ہیں، تو فوری طور پر ایک صفحے سے دور سب کچھ، پھر کیمونو ایک بہت ہے اچھا آلہ استعمال کرنے کے لئے. میں نے پہلے ذکر کے طور پر، وہاں ہے کیمونو کی اعلی درجے کی خصوصیت کہ کس طرح آپ کو ظاہر کرتا ہے منفرد HTML رسائی بھی سپر مفید ہے جو عنصر، آپ Nokogiri میں کام کر رہے ہیں. اگر ایسا ہے تو ہم آپ کے لئے، کیاک سائٹ پر جاؤ مثال کے طور پر، تم وہاں دیکھ سکتے is-- یا شاید آپ کو نہیں دیکھ سکتا. لیکن میں کیاک کے لئے آپ کو یو آر ایل دکھائیں تو، یہ اصل میں صرف ذریعہ یو آر ایل ہے. یہ کیا جا رہا کرنے کے لئے یو آر ایل پہلے ہے جو جاوا سکرپٹ کی طرف سے نظر ثانی شدہ وہ جا رہا ہے. اور یہ مختلف نظر آئے جا رہا عنصر کا معائنہ کرنے سے. تو آپ کے ذریعے جانے کے لئے اور اگر آپ معائنہ عنصر کو ملنے ماخذ کوڈ کے لئے کوڈ، یہ ہے اصل میں مختلف ہونے جا رہا. اور یہ کیوں Nokogiri بنیادی طور پر ہے متحرک طور پر لوڈ سائٹس کھرچنا نہیں کر سکتے ہیں. Nokogiri ہے ماخذ کا URL scraping کی، کیمونو اصل میں ہے جبکہ آپ بنیادی طور پر ہو کیا scraping کی منتخب عنصر میں دیکھ. تو میں کے ذریعے اور میں جا تو کوشش کریں اور Kimonofy کیاک، میں واقعی میں کے ذریعے جا سکتے اور قیمت کو منتخب کریں. یہ ایک چھوٹی سی مشکل ہے اور اس صورت میں، یہ ہے اصل میں اس کی قیمت دیکھ کر ان کے طور پر مختلف. آپ configure-- کر سکتے ہیں جبکہ تا اس متحرک طور پر لوڈ نہیں کیا گیا تو، آپ Nokogiri تشکیل کر سکتے ہیں ان کے تمام حاصل کرنے. فارمیٹنگ تھوڑا سا ہے اس لسٹنگ کے لئے مختلف اس کے باقی کے مقابلے میں ہے کے طور پر ان میں سے، اور آپ کو یہاں دیکھ سکتے ہیں یہ اصل میں چلا گیا ہے اور تمام منتخب پرواز قیمتوں. شاید میں منتخب کرنے کے لئے چاہتے ہیں کے طور پر اچھی طرح سے پرواز کے وقت. اور میں کے ذریعے جا سکتے ہیں اور قسم کی ہے کہ تشکیل. میں نہیں چاہتا کہ. میں صرف اگلی پرواز کا وقت چاہتے ہیں. اور پھر ان میں سے ایک جوڑے کے بعد سے گزر رہا، اس تصویر ہو جاتا ہے. تو کیمونو کے خوبصورت ہوشیار. یہ کافی کے طور پر مضبوط نہیں ہے. کچھ دوسرے ہیں آپ استعمال کر سکتے ہیں متبادل. اور میں یہاں آپ کو ان کے دکھائیں گے. تم میں زیادہ آرام دہ ہیں بجائے شاید روبی کے ازگر، ایک لائبریری ہے خوبصورت سوپ کہا جاتا. تم اس کا استعمال کر سکتے ہیں. یہ Nokogiri پر بہت ملتا جلتا ہے. یہ چند زیادہ خصوصیات ہے. آپ کو ایک ایچ ٹی ایم ایل ٹیگ تلاش کر سکتے ہیں اور پھر منتقل یا sideways منتقل. PyQt نہیں ہے. یہ اصل میں متحرک کھرچنا کر سکتے ہیں سائٹس، اس طرح کی ہے کیونکہ ہونے کا دعوی کرتا ہے کہ ایک webkit ہے وہاں اصل میں بغیر ایک براؤزر ایک براؤزر ہونے. لہذا یہ سب کے لئے انتظار کریں گے جاوا تو سب سے پہلے لوڈ، اور میں جاؤ اور کوشش کریں اور اس ویب سائٹ کھرچنا. آپ روبی کے ساتھ رہنا چاہتے ہیں تو آپ Nokogiri سے ایک سطح تک جا سکتے ہیں. آپ کے ساتھ Capybara استعمال کر سکتے ہیں ایک میں Poltergeist چادر. اور یہ اصل میں کر سکتے ہیں بنیادی طور پر ایک ہی بات کرتے PyQt، کے طور پر جس میں یہ ایک webkit ہے. اس کے لئے انتظار کر رہی ہے جاوا سب سے پہلے لوڈ کرنے کے لئے. آپ کو کافی اس کے ساتھ ادھر ادھر fiddle تو، آپ کو بھی یہ چیزوں پر کلک کرنے کے لئے حاصل کر سکتے ہیں. ایک لنک ہے اگر ایسا ہے ایک کلاسک href کی جہاں نہیں ہے راستہ آسانی سے قابل رسائی ہے، اور یہ پتہ لگاتا ہے کہ کچھ جاوا اسکرپٹ بات ہے ایک کلک، آپ اصل میں ایسا کر سکتے ہیں. زیادہ مقبول لائبریری ایک صارف انکرن کرنے کے لئے PhantomJS ہے جو جاوا سکرپٹ، میں ہے. یہ واضح طور پر متحرک کھرچنا کر سکتے ہیں سائٹس یہ بنیادی طور پر ہے کیونکہ کروم ہونے کا ڈرامہ یوزر انٹرفیس کے بغیر. اور پھر، کورس کی سب سے مضبوط، لیکن سست آپشن، ایک سیلینیم براؤزر آٹومیشن ہے. اور بدقسمتی سے، تم ہو نہیں جا رہے ہیں آپ CS50 IDE کے اندر اندر ایسا کرنے کے قابل. بنیادی طور پر کیا اس کی وجہ سے ہے، یہ آپ کے کروم جوتے ہے فائر فاکس، جو بھی براؤزر آپ استعمال کرنا چاہتے ہیں کہ، اور یہ اپنے ماؤس شاید پٹریوں میں آپ ٹائپ جو کچھ بھی تحریک،، اور یہ صرف کی طرح اس عمل automates. تو یہ ایک طرح کے طور تیار کی گئی تھی ویب سائٹ آٹومیشن کی جانچ کا آلہ. لیکن لوگوں کی ایک بہت استعمال کرتے ہیں ویب سائٹ کھرچنا سیلینیم وہ دوسری صورت میں ایک ہے کہ مشکل کی بہت scraping کی ان دیگر، تیز اوزار سے کچھ کے ساتھ. تو ہے کہ میں ویب scraping کے لئے مل گیا ہے. مزے کرو. سامعین: سوال. ROBERT KRABEK: جی ہاں. سامعین: ہیش کرنے کے لئے ایک طریقہ کار ہے ویب سائٹ تو آپ بنیادی طور پر کر سکتے ہیں بعد میں اس کے ذریعے جانا. ROBERT KRABEK: جی ہاں. تو ہم میں، ڈال ہماری مثال کے طور پر، ان دونوں کے لئے، ہم دستاویز میں پوری ویب سائٹ پر ڈال. اور اس طرح آپ اصل میں صرف لے سکتا متغیر دستاویز ایک فائل کو لکھنے کے لئے اور. میں چاہتا تھا تو، میں کر سکتا ہوں ایک HTML فائل کے طور پر لکھنے، کا استعمال کرتے ہوئے اس کے بعد کی بجائے OpenURI اور ایک cURL درخواست، اس وقت میں صرف دستاویز کو کھولنے کر سکتے ہیں ایچ ٹی ایم ایل اور پھر اس کے لئے تلاش. سامعین: لیکن آپ کو محفوظ کر سکتے ہیں آن لائن تجربے کی طرح آپ آف لائن کرتے ہیں جبکہ. مثال کے طور پر. جب تم کئی گھنٹے کے لئے پرواز، میں بنیادی طور پر محفوظ شدہ دستاویزات کرنا چاہتے ہیں پوری ویب سائٹ. [اشراوی] ROBERT KRABEK: جی ہاں، کہ exactly-- ہے تو لفظی کیا کر رہا ہے یہ یہ سب کچھ لے جا رہا ہے اس یو آر ایل پر ہو جائے گا. ہم curl کے بھاگ گیا تو، یہ ہے یہ HTML کے تمام لے، اور یہ ذخیرہ ہے متغیر دستاویز کے اندر. تو آپ کر سکتے ہیں جو کچھ بھی آپ دستاویز کے ساتھ کیا کرنا چاہتے ہیں. آپ کو ایک فائل کی پیداوار یہ کر سکتے ہیں. سامعین: لیکن یہ منسلک نہیں ہے. یہ متحرک نہیں ہے. یہ درست ہے، نہ پنراورتی ہے؟ میرا مطلب ہے تمہیں دیکھ رہے ہو؟ میں بنیادی طور پر کی طرح ایک ہیش کی کوشش کر رہا ہوں میری ہارڈ ڈرائیو پر پوری ویب سائٹ تو میں بنیادی طور پر یہ کر سکتے ہیں کہ انٹرنیٹ کے بغیر کئی گھنٹے کے لئے. ROBERT KRABEK: دائیں. میں had-- تو تو جہاں میری فائل I / O ہے؟ تو اس فائل I / O ہے. تو بجائے کہنا اس کے، میں اس craigslist.html کال. میں اس کو کھولنے گا. میں اس میں رکھتا دستاویز تھا. میں نے فائل بند. اور پھر صرف اس وجہ سے CS50 IDE کہ، بادل پر جو کچھ بھی ہے. میں یہاں جا سکتے ہیں. میں فائل ڈاؤن لوڈ کرسکتے ہیں. اور پھر اس کے میری ہارڈ ڈرائیو پر ہوگا. تو آپ کو اس طرح کر سکتے ہیں. آپ گھر میں ہیں یا اگر، کا استعمال نہیں کر CS50 IDE، Sublime کی یا کچھ اور طرح، اس کی وجہ سے، یہاں تک کہ آسان ہے یہ مقامی طور پر تمام دستیاب ہے انٹرنیٹ سے منسلک نہیں. سامعین: میں دیکھ رہا ہوں. یہ ایک خاص مسئلہ کے لئے ہے. تاکہ آپ تکراری طور پر کیا کر سکتے ہیں کئی تہوں گہری قسم کی بات کی جانا؟ ROBERT KRABEK: فولڈر ڈاؤن لوڈ کرسکتے ہیں کہ کے طور پر اگر اچھی طرح سے، تم سے پوچھ رہے ہیں. سامعین: جی ہاں. ROBERT KRABEK: ٹھنڈی.