1 00:00:00,000 --> 00:00:03,234 >> [संगीत बजाना] 2 00:00:03,234 --> 00:00:05,275 3 00:00:05,275 --> 00:00:06,400 रॉबर्ट KRABEK: हैलो, दोस्तों। 4 00:00:06,400 --> 00:00:09,980 मेरा नाम रॉबर्ट Krabek, और है मैं तुम लोगों को अध्यापन किया जाएगा 5 00:00:09,980 --> 00:00:15,470 साथ वेब परिमार्जन करने के लिए कैसे एक रूबी पुस्तकालय है जो Nokogiri, 6 00:00:15,470 --> 00:00:17,566 और एक क्रोम एक्सटेंशन है जो किमोनो,। 7 00:00:17,566 --> 00:00:20,940 8 00:00:20,940 --> 00:00:25,010 >> तो पहले वहाँ एक कुछ बातें आपको लगता है कि 9 00:00:25,010 --> 00:00:28,790 आप से किया गया है हो सकता है अगर ऐसा कर सकते हैं अब तक सभी psets कर रही है 10 00:00:28,790 --> 00:00:31,170 और अपने कार्यक्षेत्र है एक छोटे से पूर्ण हो रही है। 11 00:00:31,170 --> 00:00:37,060 हम वास्तव में बस जाओ और कर सकते हैं आप के लिए एक नया कार्यक्षेत्र बनाने 12 00:00:37,060 --> 00:00:41,220 बस में एक ब्रांड के नए प्रोजेक्ट करने के लिए। 13 00:00:41,220 --> 00:00:46,160 क्या आप जारी रखना चाहते हैं तो अगर CS50 खाका आईडी में काम 14 00:00:46,160 --> 00:00:49,080 आप वर्तमान में है कि, स्वतंत्र लग रहा है, और तुम सिर्फ कर सकते हैं 15 00:00:49,080 --> 00:00:54,700 CFLAGS साथ Nokogiri स्थापित बराबर होती मणि nokogiri स्थापित करें। 16 00:00:54,700 --> 00:00:56,930 लेकिन अन्यथा मैं आपको दिखाता हूँ एक नया एक स्थापित करने के लिए कैसे। 17 00:00:56,930 --> 00:01:01,210 और फिर यह अनिवार्य है अधिक प्रशिक्षण के पहियों छोड़ने। 18 00:01:01,210 --> 00:01:07,120 अगर तुम थे और जैसा कि आप कोडिंग कर रहे हैं सिर्फ उदात्त या कुछ में कोडिंग। 19 00:01:07,120 --> 00:01:12,365 हम इस पर बदलाव तो अगर। 20 00:01:12,365 --> 00:01:14,930 21 00:01:14,930 --> 00:01:18,690 >> तो यह आपके वर्तमान सीएस 50 आईडी है कहना। 22 00:01:18,690 --> 00:01:21,490 तुम बस यहाँ Cloud9 करने के लिए जा सकते हैं। 23 00:01:21,490 --> 00:01:22,725 आप अपने डैशबोर्ड पर जा सकते हैं। 24 00:01:22,725 --> 00:01:26,720 25 00:01:26,720 --> 00:01:29,950 यह कार्यस्थान टैब को लाना चाहिए। 26 00:01:29,950 --> 00:01:32,980 और फिर आप बस क्लिक कर सकते हैं इधर, एक नया कार्यक्षेत्र बनाएँ। 27 00:01:32,980 --> 00:01:37,600 अपने नए कार्यक्षेत्र नाम, शायद परीक्षण, या स्क्रैप। 28 00:01:37,600 --> 00:01:42,700 और फिर यहाँ इस कस्टम टैब पर क्लिक करें बजाय CS50 टेम्पलेट्स टैब की। 29 00:01:42,700 --> 00:01:45,155 और फिर आप बस जा सकते हैं और एक नया कार्यक्षेत्र बनाने के लिए। 30 00:01:45,155 --> 00:01:48,280 >> मैं पहले से ही यहाँ एक कार्यक्षेत्र बना लिया है। 31 00:01:48,280 --> 00:01:50,640 इसलिए हम इस के साथ काम करना होगा। 32 00:01:50,640 --> 00:01:55,380 और आप एक नया बनाया है कार्यक्षेत्र कस्टम टैब के साथ तो, 33 00:01:55,380 --> 00:02:04,560 तुम सिर्फ मणि स्थापित टाइप कर सकते हैं यहाँ नहीं जा रहा है, जो nokogiri। 34 00:02:04,560 --> 00:02:06,230 ठीक है, यह एक छोटे से जमे हुए है। 35 00:02:06,230 --> 00:02:08,979 लेकिन अगर आप nokogiri स्थापित मणि टाइप कर सकते हैं। 36 00:02:08,979 --> 00:02:15,970 और यह सब होना चाहिए कि स्थापना करने के लिए नहीं है। 37 00:02:15,970 --> 00:02:20,590 >> जैसा कि मैंने कहा, इससे पहले कि आप अभी भी कर रहे हैं अपने CS50 खाका आईडी में काम कर रहे, 38 00:02:20,590 --> 00:02:30,270 तुम सिर्फ CFLAGS टाइप करने की जरूरत मणि nokogiri स्थापित बराबर होती है। 39 00:02:30,270 --> 00:02:33,130 और मैं पहले से ही स्थापित किया है यह यहां इसलिए मुझे लगता है कि ऐसा नहीं होगा। 40 00:02:33,130 --> 00:02:38,500 लेकिन उन लोगों के लिए निम्नलिखित साथ में, ऐसा करने के लिए स्वतंत्र महसूस। 41 00:02:38,500 --> 00:02:46,000 >> आप अपने Nokogiri मिल गया है तो एक बार कार्यक्षेत्र या पुस्तकालय स्थापित है, 42 00:02:46,000 --> 00:02:49,500 मैं आप एक छोटा सा देने के लिए जा रहा हूँ रूबी वाक्य रचना में एक क्रैश कोर्स की 43 00:02:49,500 --> 00:02:53,380 Nokogiri एक रूबी पुस्तकालय है। 44 00:02:53,380 --> 00:03:03,710 तो अगर आप कुछ बुनियादी पता करना होगा Nokogiri के साथ काम करने के लिए रूबी सिंटेक्स। 45 00:03:03,710 --> 00:03:08,750 तो कुछ बुनियादी मतभेद आप के लिए इस्तेमाल कर रहे हैं से 46 00:03:08,750 --> 00:03:13,370 शायद आप काम कर रहा है, तो अब तक सिर्फ सी और पीएचपी में, 47 00:03:13,370 --> 00:03:16,010 आप कोई प्रकार के साथ चर घोषणा। 48 00:03:16,010 --> 00:03:19,720 आप अर्धविराम का उपयोग नहीं करते, जो एक राहत की तरह है। 49 00:03:19,720 --> 00:03:25,480 अब आसपास कोई कोष्ठकों नहीं है के लिए या छोरों जबकि, उदाहरण के लिए। 50 00:03:25,480 --> 00:03:29,460 तुम बस कोड का एक ब्लॉक है, और तो आप उस के अंत में समाप्त कर दिया। 51 00:03:29,460 --> 00:03:32,380 कोई प्लस वहाँ प्लस शून्य या शून्य, बस इतना 52 00:03:32,380 --> 00:03:36,180 जब के लिए जानते हैं कि आप छोरों के लिए कर रहे हैं, 53 00:03:36,180 --> 00:03:38,620 सिर्फ प्लस बराबर होती है और शून्य के बराबर होती है। 54 00:03:38,620 --> 00:03:43,310 और बदले हैश के शामिल तुम तो आवश्यकता का उपयोग करेंगे और 55 00:03:43,310 --> 00:03:47,755 कोशिश कर रहा है जो कुछ भी पुस्तकालय अपने कार्यक्रम में लोड करने के लिए। 56 00:03:47,755 --> 00:03:51,610 57 00:03:51,610 --> 00:03:53,430 >> रूबी एक संकलित भाषा नहीं है। 58 00:03:53,430 --> 00:03:55,550 तो यह है कि एक और राहत की बात है। 59 00:03:55,550 --> 00:03:59,350 यह पीएचपी, जहां के लिए और अधिक समान है यह एक व्याख्या की भाषा है। 60 00:03:59,350 --> 00:04:03,570 आप किसी भी रूबी स्क्रिप्ट चला सकते हैं रूबी पीछा के साथ आप लिखना 61 00:04:03,570 --> 00:04:07,380 अपनी स्क्रिप्ट या प्रोग्राम के नाम से। 62 00:04:07,380 --> 00:04:13,000 यह एक रूबी कार्यक्रम है दर्शाता है कि, तुम सिर्फ .rb बजाय ग के साथ इसे खत्म होता है। 63 00:04:13,000 --> 00:04:17,440 और चर देखते हैं रूबी में आकार सरणियों, 64 00:04:17,440 --> 00:04:23,200 जो आप कर रहे हैं जब सुपर सुविधाजनक है स्क्रैप और शायद संलग्न करना चाहते हैं 65 00:04:23,200 --> 00:04:26,090 आप एक सरणी में scraped है कि डेटा। 66 00:04:26,090 --> 00:04:31,960 आप एक नई सरणी malloc के लिए नहीं है और नई सरणी में पुराने सरणी कॉपी। 67 00:04:31,960 --> 00:04:36,150 तुम बस के साथ संलग्न कर सकते हैं दो तीर के संकेत हैं। 68 00:04:36,150 --> 00:04:39,820 और कोई घर का काम देखते, देखते हैं सिर्फ एक पत्र तार। 69 00:04:39,820 --> 00:04:44,760 तो यह है कि एक छोटे से आसान होना चाहिए। 70 00:04:44,760 --> 00:04:50,130 >> तो हम बस आप कुछ दे दूँगा कुछ बुनियादी रूबी वाक्य रचना के उदाहरण हैं। 71 00:04:50,130 --> 00:04:57,100 यहाँ तो आप के बजाय देख सकते हैं कि स्लैश स्लैश, रूबी में टिप्पणी करने के लिए 72 00:04:57,100 --> 00:04:58,740 आप सिर्फ पाउंड चिह्न का उपयोग करें। 73 00:04:58,740 --> 00:05:04,990 और चर घोषणा, आप सिर्फ चर बराबरी टाइप 74 00:05:04,990 --> 00:05:07,971 जो कुछ भी आप चर होना चाहते हैं। 75 00:05:07,971 --> 00:05:09,220 वे तार हो सकता है। 76 00:05:09,220 --> 00:05:14,120 आप सरणी, जो हो सकता है आप मूल्यों के साथ आबाद। 77 00:05:14,120 --> 00:05:17,240 पुट और प्रिंट के समान हैं। 78 00:05:17,240 --> 00:05:20,110 हमारे उद्देश्यों के लिए, फर्क सिर्फ इतना सच है 79 00:05:20,110 --> 00:05:25,500 उस के लिए खड़ा है, जो कहते हैं कहते हैं, बस एक नई लाइन कहते हैं 80 00:05:25,500 --> 00:05:27,440 चरित्र जो कुछ भी आप मुद्रण कर रहे हैं। 81 00:05:27,440 --> 00:05:30,980 >> हम एक छोटे से देते हैं तो यहां प्रदर्शन, 82 00:05:30,980 --> 00:05:41,800 हम इस with-- चला सकते हैं एक नए टर्मिनल खुला। 83 00:05:41,800 --> 00:05:46,020 आप इन सब को देख सकते हैं अपने टर्मिनल में फ़ाइलों। 84 00:05:46,020 --> 00:05:50,960 और मैं सिर्फ चलाते हैं रूबी, रूबी intro.rb, यह 85 00:05:50,960 --> 00:05:53,530 हैलो पाँच बाहर डालता है माथर, क्विंसी, कैरियर। 86 00:05:53,530 --> 00:05:54,410 एडम्स। 87 00:05:54,410 --> 00:05:59,295 वह सब है तो वहाँ है घोषित करने सरणियों के लिए। 88 00:05:59,295 --> 00:06:01,670 दर्शकों: रॉबर्ट, आप कर सकते हैं अपने फॉन्ट एक छोटे से बड़ा? 89 00:06:01,670 --> 00:06:02,461 रॉबर्ट KRABEK: हाँ। 90 00:06:02,461 --> 00:06:05,370 91 00:06:05,370 --> 00:06:12,280 तुम नहीं कर सकते, क्योंकि मैं ज़ूम कर सकते हैं जाहिरा तौर पर टर्मिनल फोंट में ज़ूम। 92 00:06:12,280 --> 00:06:18,790 93 00:06:18,790 --> 00:06:24,630 >> तो यह है कि आप प्रिंट कैसे है अपने टर्मिनल के लिए चर। 94 00:06:24,630 --> 00:06:28,820 आप भी उपयोग कर सकते हैं एक स्ट्रिंग के अंदर चर। 95 00:06:28,820 --> 00:06:33,720 तो हाल ही में पीएचपी में, आप सीखा है हो सकता है 96 00:06:33,720 --> 00:06:37,340 स्ट्रिंग प्रक्षेप है कि वहाँ। 97 00:06:37,340 --> 00:06:43,830 तो तुम यहाँ एक नज़र रखना है, तो मैं यदि , तीन चर, नाम, पुस्तकालय की घोषणा 98 00:06:43,830 --> 00:06:49,700 और भाषा, और मैं कहते हैं, मैं एक स्ट्रिंग लिखने, नमस्ते मेरा नाम है। 99 00:06:49,700 --> 00:06:54,190 और फिर बजाय पीएचपी स्ट्रिंग प्रक्षेप के संस्करण 100 00:06:54,190 --> 00:06:58,960 जो इस तरह एक छोटे से अधिक लग रहा है, आप तो एक पाउंड पर हस्ताक्षर किया है, और 101 00:06:58,960 --> 00:07:01,220 एक घुंघराले गले लगा, और उसके बाद चर का नाम। 102 00:07:01,220 --> 00:07:07,350 और कहा कि आप प्रिंट होता है, कैसे कहना है, जो कुछ भी चर नाम है। 103 00:07:07,350 --> 00:07:10,140 >> और फिर आप भी कर सकते हैं तार जुटना। 104 00:07:10,140 --> 00:07:12,890 रूबी यह सुपर बनाता है प्लस पर हस्ताक्षर के साथ आसान। 105 00:07:12,890 --> 00:07:16,110 तुम सिर्फ एक स्ट्रिंग है बाएं प्लस एक चर पर 106 00:07:16,110 --> 00:07:18,860 एक और स्ट्रिंग के साथ साथ एक स्ट्रिंग या। 107 00:07:18,860 --> 00:07:23,500 मैं इस बाहर प्रिंट, तो यह चाहिए ताकि बस अपना नाम रॉबर्ट है, हैलो कहते हैं। 108 00:07:23,500 --> 00:07:27,340 मैं आप रूबी में nokogiri शिक्षण जाएगा। 109 00:07:27,340 --> 00:07:35,370 >> और चलो बस यह है कि इस बात की पुष्टि करते हैं वास्तव में case-- माणिक परिचय है। 110 00:07:35,370 --> 00:07:36,480 नमस्कार, मेरा नाम रॉबर्ट है। 111 00:07:36,480 --> 00:07:40,160 मैं आप रूबी में nokogiri शिक्षण जाएगा। 112 00:07:40,160 --> 00:07:45,600 >> पर चल रहा है, और बयानों हैं, यह थोड़ा अलग है 113 00:07:45,600 --> 00:07:49,800 आप के लिए इस्तेमाल किया जा सकता है क्या से आप सी में काम कर रहा है, तो 114 00:07:49,800 --> 00:07:53,200 आप कोष्ठकों जरूरत नहीं है। 115 00:07:53,200 --> 00:07:55,220 आप सर्पाकार जरूरत नहीं है। 116 00:07:55,220 --> 00:08:00,170 और इसके बजाय यदि किसी और की, यह एक concatenated elsif है। 117 00:08:00,170 --> 00:08:07,260 यहाँ में तो, मैं घोषित किया है, तो ऊपर x हम देख सकते हैं, यहाँ, एक्स अभी भी 5 है। 118 00:08:07,260 --> 00:08:11,100 एक्स 3 की तुलना में कम है, तो यह छोटा सा डाल देता हूँ। 119 00:08:11,100 --> 00:08:14,030 यह 7, मध्यम, और कुछ बड़े की तुलना में कम है तो। 120 00:08:14,030 --> 00:08:17,340 तो 5 एक मध्यम संख्या है। 121 00:08:17,340 --> 00:08:22,270 और मैं अंत के साथ कोड के इस ब्लॉक खत्म होता है। 122 00:08:22,270 --> 00:08:24,920 >> यहाँ पाश के लिए मेरी है। 123 00:08:24,920 --> 00:08:28,240 और इस वाक्य रचना भी है थोड़ा अलग। 124 00:08:28,240 --> 00:08:33,500 0 से पांच सिर्फ अनिवार्य 0-5 की सरणियों की घोषणा की है। 125 00:08:33,500 --> 00:08:36,120 तो सरणी में पांच स्लॉट नहीं है। 126 00:08:36,120 --> 00:08:40,500 और फिर उस में प्रत्येक स्लॉट के लिए सरणी, मैं मैं incrementing हो जाएगा। 127 00:08:40,500 --> 00:08:46,080 तो यह 4 से 0-5, या 0 प्रिंट चाहिए। 128 00:08:46,080 --> 00:08:49,630 और इस माध्यम प्रिंट चाहिए। 129 00:08:49,630 --> 00:08:51,370 >> और मैं सिर्फ माध्यम से आग करेंगे। 130 00:08:51,370 --> 00:08:54,466 तुम लोग उपयोग होगा पर बाद में इस कोड को। 131 00:08:54,466 --> 00:08:55,965 तो तुम लोग इस अपने आप चला सकते हैं। 132 00:08:55,965 --> 00:09:02,090 133 00:09:02,090 --> 00:09:06,620 >> तो यह अपने बुनियादी जबकि पाश है। 134 00:09:06,620 --> 00:09:12,230 यह सिर्फ जम्मू मुद्रण होगा, हम 5 मारा जब तक 1 से incrementing। 135 00:09:12,230 --> 00:09:18,320 >> सुपर त्वरित रूबी क्रैश कोर्स एक समारोह में लिखने के लिए पर। 136 00:09:18,320 --> 00:09:24,460 इसके बजाय, का कहना है, पूर्णांक भाज्य नंबर, हम सिर्फ डेफ है। 137 00:09:24,460 --> 00:09:28,450 और अनिवार्य रूप से आप कर रहे हैं यहां एक समारोह को परिभाषित। 138 00:09:28,450 --> 00:09:30,600 यह होने जा रहा है समारोह के नाम पर, 139 00:09:30,600 --> 00:09:34,280 और यह किसी भी चर है कि आप समारोह में पारित करने के लिए चाहते हैं। 140 00:09:34,280 --> 00:09:36,760 आप के भीतर यदि बयानों हो सकता है। 141 00:09:36,760 --> 00:09:38,030 आप वापसी कर सकते हैं। 142 00:09:38,030 --> 00:09:42,620 इस मामले में, हम कर रहे हैं एक बारी बारी से परिभाषित 143 00:09:42,620 --> 00:09:45,000 कार्यान्वित भाज्य समारोह। 144 00:09:45,000 --> 00:09:48,660 तो हम बस कार्यों फोन इस तरह रूबी में। 145 00:09:48,660 --> 00:09:54,700 >> मैं यह है कि मैं, परिभाषित किया है तो अगर 3 में से गुजरती हैं, भाज्य कॉल कर सकते हैं, 146 00:09:54,700 --> 00:09:59,700 और फिर 3 नंबर चर हो जाएगा मैं समारोह के भीतर उपयोग कर सकते हैं। 147 00:09:59,700 --> 00:10:08,010 और इस to_s सिर्फ तब्दील हो रही है एक स्ट्रिंग में भाज्य के मूल्य वापसी। 148 00:10:08,010 --> 00:10:10,760 अन्यथा इस फेंक देंगे एक त्रुटि मैं, ओह कह 149 00:10:10,760 --> 00:10:13,230 एक string-- मुद्रित नहीं कर सकते तुम्हें याद के रूप में है, क्योंकि 150 00:10:13,230 --> 00:10:18,230 इस वजह से string-- डाल दिया जाता है डालता भाज्य एक नंबर वापस आ गया है। 151 00:10:18,230 --> 00:10:21,850 तो हम उस परिवर्तित कर सकते हैं इस तरह की तरह एक स्ट्रिंग के लिए। 152 00:10:21,850 --> 00:10:27,856 और इसके विपरीत, आप भी परिवर्तित कर सकते हैं to_i साथ एक पूर्णांक के लिए एक स्ट्रिंग। 153 00:10:27,856 --> 00:10:32,650 >> इतना सब कुछ सुपर सरल बनाने, मैं सिर्फ यह पता टिप्पणी करते हैं, तो बचा 154 00:10:32,650 --> 00:10:36,250 और भाज्य समारोह चलाते हैं। 155 00:10:36,250 --> 00:10:39,850 हम यह देखने के लिए सक्षम होना चाहिए 3 की कि भाज्य 6 है। 156 00:10:39,850 --> 00:10:42,790 और कहा कि वास्तव में सच है। 157 00:10:42,790 --> 00:10:46,160 >> तो यह है कि रूबी में क्रैश कोर्स है। 158 00:10:46,160 --> 00:10:53,550 और अब आप रूबी पता है, हम पर जा सकते हैं बुनियादी Nokogiri करने के लिए स्थापित scraping। 159 00:10:53,550 --> 00:10:58,190 अनिवार्य रूप से आप है सभी के लिए है, रूबी में, पुस्तकालयों की आवश्यकता होती है। 160 00:10:58,190 --> 00:11:04,390 और हमारे उद्देश्यों के लिए हम उपयोग कर सकता हूँ पुस्तकालय OpenURI के साथ-साथ Nokogiri। 161 00:11:04,390 --> 00:11:07,870 और फिर क्या आप do-- और यह हूँ आप है- वाक्य विन्यास को देना 162 00:11:07,870 --> 00:11:16,010 क्या आप में होगा के रूप में ज्यादा यूआरएल को खोलने के लिए है सी यूआरएल के लिए खड़ा है, जो एक कर्ल अनुरोध,। 163 00:11:16,010 --> 00:11:20,330 >> तो आप का यूआरएल ले सवाल में वेबसाइट। 164 00:11:20,330 --> 00:11:22,030 आप एक चर में यह दुकान। 165 00:11:22,030 --> 00:11:27,400 और फिर आप उस के माध्यम से खोज सकते हैं का उपयोग करते हुए अनूठा एचटीएमएल टैग के लिए चर 166 00:11:27,400 --> 00:11:30,590 सीएसएस आदेश। 167 00:11:30,590 --> 00:11:34,360 और फिर तुम उत्पादन कर सकते हैं जहाँ आप चाहते हैं के लिए सामग्री। 168 00:11:34,360 --> 00:11:35,720 आप एक डेटाबेस में शुरू कर सकते हैं। 169 00:11:35,720 --> 00:11:42,040 आप कर सकते हैं एक फ़ाइल में उत्पादन, या यहां तक ​​कि सिर्फ स्क्रीन करने के लिए इसे प्रिंट। 170 00:11:42,040 --> 00:11:47,290 >> तो हम आपको एक बुनियादी खुरचनी दिखाएंगे। 171 00:11:47,290 --> 00:11:52,570 यहां तक ​​कि आप हम देख सकते हैं तो nokogiri की आवश्यकता होती है, खुले उड़ी आवश्यकता होती है। 172 00:11:52,570 --> 00:11:57,150 आपका बुनियादी सेट अप, चलो , दस्तावेज़ या डॉक्टर इसे कहते हैं 173 00:11:57,150 --> 00:12:07,780 Nokogiri :: HTML है, जो खुले बराबर होती है OpenURI द्वारा हमें प्रदान की कमान 174 00:12:07,780 --> 00:12:08,920 पुस्तकालय। 175 00:12:08,920 --> 00:12:14,000 और हम में से उन लोगों के लिए, खोज करेंगे ट्रैक्टर में रहने वाले हो सकते हैं, जो आप, 176 00:12:14,000 --> 00:12:21,270 बोस्टन में सूचीबद्ध हैं कि बाइक के लिए बोस्टन क्रेगलिस्ट बाइक खंड पर 177 00:12:21,270 --> 00:12:22,020 साइट। 178 00:12:22,020 --> 00:12:26,460 >> आप अपरिचित हैं तो अगर कर्ल के साथ, मैं तो बस हूँ 179 00:12:26,460 --> 00:12:28,930 असली जल्दी कर्ल क्या करेंगे आप दिखा। 180 00:12:28,930 --> 00:12:38,350 मैं से यूआरएल के सभी प्राप्त करना चाहता था क्रेगलिस्ट साइट, मैं कर्ल टाइप करते हैं, 181 00:12:38,350 --> 00:12:44,950 यह सिर्फ यूआरएल के सभी उदासीनता क्रेगलिस्ट साइकिल साइट से 182 00:12:44,950 --> 00:12:46,720 अपने टर्मिनल पर। 183 00:12:46,720 --> 00:12:49,130 यही कारण है कि विशेष रूप से नहीं है उपयोगी मैं नहीं जानता, क्योंकि 184 00:12:49,130 --> 00:12:53,330 मैन्युअल के माध्यम से जाना चाहते हैं और मेरी चाहत बात लगता है। 185 00:12:53,330 --> 00:13:01,590 लेकिन अभी तो आप कर सकते हैं मैं वास्तव में हूँ कि वहाँ 186 00:13:01,590 --> 00:13:13,966 अगर तुम देखो, सही कोड का उपयोग bikes-- में Craigslist के लिए URL पर 187 00:13:13,966 --> 00:13:17,460 किसी कारण के लिए यह नहीं मिला है। 188 00:13:17,460 --> 00:13:20,340 आप इस पेज पर नजर डालें तो और आप यूआरएल को देखो, 189 00:13:20,340 --> 00:13:23,970 इस के लिए समान होना चाहिए मैं सिर्फ भेज कि कर्ल अनुरोध। 190 00:13:23,970 --> 00:13:27,700 और वास्तव में, जा रहा है कि क्या है डॉक्टर चर में संग्रहीत। 191 00:13:27,700 --> 00:13:36,540 >> तो अगर आप हमारे कोड के लिए वापस जाना है, जब हम तो इस डॉक्टर चर पर काम कर सकते हैं 192 00:13:36,540 --> 00:13:40,660 सीएसएस का उपयोग करके। 193 00:13:40,660 --> 00:13:49,240 इसलिए मुझे लगता है की सब प्राप्त करना चाहता था कहना span.txt हैं कि टैग, 194 00:13:49,240 --> 00:13:51,740 और कहा कि टैग के भीतर सभी एक टैग। 195 00:13:51,740 --> 00:13:56,150 और हम क्यों चाहते हो सकता है इस करते हैं, मैं तुम्हें रोते सुना? 196 00:13:56,150 --> 00:14:02,920 >> हम निरीक्षण तत्व हैं, तो यह आप एक देता है यूआरएल संरचित है कैसे के टूटने। 197 00:14:02,920 --> 00:14:06,200 मैं के माध्यम से नीचे स्क्रॉल यहाँ आप देख सकते हैं 198 00:14:06,200 --> 00:14:08,770 क्या इन अलग से प्रत्येक तत्व का प्रतिनिधित्व करता है। 199 00:14:08,770 --> 00:14:13,410 इसलिए हो सकता है कि मैं का उपयोग करना चाहते हैं इस विशेष तत्व। 200 00:14:13,410 --> 00:14:16,820 तो मैं क्रोम डेवलपर उपयोग कर रहा हूँ उपकरण तत्व का निरीक्षण किया। 201 00:14:16,820 --> 00:14:22,970 मैं यहाँ नीचे देखना यह है कि कर सकते हैं एक अंतराल के भीतर एक टैग है 202 00:14:22,970 --> 00:14:26,230 TXT के एक वर्ग के साथ टैग। 203 00:14:26,230 --> 00:14:29,610 >> तो यह करने के लिए हो जाता है हमारी पहला ऑपरेशन है, जो 204 00:14:29,610 --> 00:14:37,330 टैग है जो doc.css अवधि, है कि मैं यह सब यूआरएल के भीतर के लिए देख रहा हूँ। 205 00:14:37,330 --> 00:14:43,650 और फिर .txt सीएसएस की तरह ज्यादा संचालित तुम सिर्फ सीएसएस लिख रहे हैं जब करता है 206 00:14:43,650 --> 00:14:49,630 द्वारा अपने HTML फ़ाइलों में एक वर्ग को निर्दिष्ट। 207 00:14:49,630 --> 00:14:57,980 इसलिए इस विशेष ऑपरेटर होगा TXT के वर्ग के साथ एक अवधि टैग निर्दिष्ट करें। 208 00:14:57,980 --> 00:15:02,800 और फिर मैं एक जगह छोड़ दें, तो यह तो है कि टैग के भीतर जाना होगा 209 00:15:02,800 --> 00:15:05,170 और फिर एक है कि भीतर एक टैग पाते हैं। 210 00:15:05,170 --> 00:15:10,750 >> तो मैं बस को यह डाल टर्मिनल, मुझे ऐसा करना चाहिए 211 00:15:10,750 --> 00:15:21,630 अनिवार्य रूप से सब कुछ देखने के लिए सक्षम होना उस वर्ग TXT की इस अवधि के भीतर है। 212 00:15:21,630 --> 00:15:22,890 इसलिए हम एक जाने दे दूँगा। 213 00:15:22,890 --> 00:15:25,870 214 00:15:25,870 --> 00:15:27,756 माणिक Craigslist खुरचनी। 215 00:15:27,756 --> 00:15:31,850 216 00:15:31,850 --> 00:15:37,250 और वास्तव में लगता है कि हमें इन सभी को देता है विभिन्न लिस्टिंग के टैग कि 217 00:15:37,250 --> 00:15:40,400 क्रेगलिस्ट पृष्ठ पर हैं। 218 00:15:40,400 --> 00:15:45,670 >> हम वापस जाने के लिए तो, अगर हम इस बारी कर सकते हैं कुछ में एक छोटे से अधिक उपयोगी है। 219 00:15:45,670 --> 00:15:51,050 शायद हम सिर्फ लिंक चाहते हैं। 220 00:15:51,050 --> 00:15:58,790 इस टैग के भीतर, मैं भी हूँ क्योंकि पथ का हाइपरलिंक है 221 00:15:58,790 --> 00:16:00,590 कि इस पेज को जाता है। 222 00:16:00,590 --> 00:16:09,100 तो तुम यहाँ इस कोड को देखो, मैं क्या करूंगा, बजाय सीएसएस की है 223 00:16:09,100 --> 00:16:12,380 मैं at_css जा सकते हैं। 224 00:16:12,380 --> 00:16:16,820 और यह सिर्फ पहली बार मिल जाएगा उन चीजों में से सभी के तत्व। 225 00:16:16,820 --> 00:16:20,890 अगर मैं थे में है कि ऊपर ऐसा करने के लिए कोड मैं सिर्फ पहले से प्रदर्शन, 226 00:16:20,890 --> 00:16:23,800 बजाय सभी लौटने की इस कारण, यह सिर्फ होगा 227 00:16:23,800 --> 00:16:26,850 उन लोगों में से पहले एक वापसी। 228 00:16:26,850 --> 00:16:31,310 At_css ऑपरेटर कैसे काम करता है तो वह है। 229 00:16:31,310 --> 00:16:39,460 >> इसलिए हम संग्रहीत करना चाहते हैं पथ पहले एक टैग के सभी। 230 00:16:39,460 --> 00:16:47,430 और एक अमेरिकी एक-- दे देंगे क्योंकि इसलिए हम अभी भी सीएसएस का उपयोग करने के लिए जा रहे हैं। 231 00:16:47,430 --> 00:16:53,830 लेकिन इस वजह से देने जा रहा है हमें वापस टैग की एक पूरी सरणी, 232 00:16:53,830 --> 00:16:55,710 हम उपयोग करने के लिए जा रहे हैं पहला तत्व। 233 00:16:55,710 --> 00:17:01,700 तो यह एक और तरीका है कि आप कर सकते है अगर आप किसी विशेष तत्व का उपयोग 234 00:17:01,700 --> 00:17:04,810 तत्वों की एक सरणी है कि वापस आ रहा है, 235 00:17:04,810 --> 00:17:11,930 आप कुछ भी इलाज कर सकते हैं कि क्योंकि अनिवार्य रूप से एक सरणी के रूप में सीएसएस रिटर्न,। 236 00:17:11,930 --> 00:17:16,880 और फिर हम उपयोग करने के लिए जा रहे हैं इस के हाइपरटेक्स्ट संदर्भ विशेषता। 237 00:17:16,880 --> 00:17:24,810 >> तो आप एक बार देख ले, यदि आप यहां बहुत करीब से देखा 238 00:17:24,810 --> 00:17:28,270 सिर्फ अनिवार्य रूप से आप यदि यूआरएल बार देखो, 239 00:17:28,270 --> 00:17:33,880 इस रास्ते पर है कि आप स्क्रैप हो जा रहे हैं। 240 00:17:33,880 --> 00:17:41,565 हम तो बस फिर इस चलाते हैं तो, और हम इसे बचा लिया सुनिश्चित करें। 241 00:17:41,565 --> 00:17:47,040 242 00:17:47,040 --> 00:17:48,300 तुम घर पर जांच कर सकते हैं। 243 00:17:48,300 --> 00:17:51,430 यह वास्तव में इस लिंक के साथ मेल खाता है। 244 00:17:51,430 --> 00:17:55,950 >> तो क्यों न हम इस का उपयोग करने के लिए चाहते हो सकता है? 245 00:17:55,950 --> 00:17:57,870 आप परिमार्जन करने के लिए चाहते हैं यह और है पेज 246 00:17:57,870 --> 00:18:00,270 जैसे लिंक का एक पेज क्रेगलिस्ट करता है, आप 247 00:18:00,270 --> 00:18:03,210 तो जाने के लिए चाहते हो सकता है उन कड़ियों में से प्रत्येक में 248 00:18:03,210 --> 00:18:05,120 और फिर परिमार्जन कि की सामग्री, जो 249 00:18:05,120 --> 00:18:08,520 हम क्या करने जा रहे हैं कि वास्तव में क्या है। 250 00:18:08,520 --> 00:18:11,660 >> आप एक के रूप में पथ है तो एक बार चर, मैं अब वास्तव में 251 00:18:11,660 --> 00:18:13,200 इसे बाहर प्रिंट करने के बारे में परवाह है। 252 00:18:13,200 --> 00:18:15,420 मैं सिर्फ एक चर के रूप में यह स्टोर करने की जरूरत है। 253 00:18:15,420 --> 00:18:20,980 और फिर मैं एक और उपयोग कर सकते हैं मैं का उपयोग एक ही रास्ता पेज 254 00:18:20,980 --> 00:18:22,260 पहली जगह में डॉक्टर। 255 00:18:22,260 --> 00:18:25,920 यूआरएल के साथ छोड़कर, हम जा रहे हैं स्ट्रिंग प्रक्षेप का उपयोग करने के लिए 256 00:18:25,920 --> 00:18:29,180 जैसे मैं में वर्णन किया गया है रूबी पर पहले संलग्न करने के लिए 257 00:18:29,180 --> 00:18:32,010 जड़ से समाप्त करने के लिए पथ। 258 00:18:32,010 --> 00:18:38,970 >> तो क्या यह करने के लिए जा रहा है इस रास्ते पर डाल दिया जा रहा है 259 00:18:38,970 --> 00:18:42,360 मैं पहले से scraped कि और फिर उस बारी 260 00:18:42,360 --> 00:18:49,580 एक नए आइटम में, आप करना चाहते हैं जो कुछ भी it-- उदाहरण के लिए, first_listing कहते हैं। 261 00:18:49,580 --> 00:18:52,900 लेकिन मुझे छोड़ने के लिए जा रहा हूँ अब के लिए आइटम पर यह 262 00:18:52,900 --> 00:18:55,420 कि मैं यहाँ का उपयोग कर रहा है, क्योंकि। 263 00:18:55,420 --> 00:19:02,900 >> तो मैं विवरण प्राप्त करना चाहता था कहना Craigslist में पहली पोस्टिंग की। 264 00:19:02,900 --> 00:19:04,740 तो मैं यहाँ नीचे जाना होगा। 265 00:19:04,740 --> 00:19:10,660 मैं निरीक्षण तत्व पर क्लिक करेंगे फिर, यह वर्णन है। 266 00:19:10,660 --> 00:19:14,350 मैं यहाँ नीचे जाने के लिए और देखना चाहते हैं मुझे मिल सकता है तो मैं कैसे हो सकता है 267 00:19:14,350 --> 00:19:16,530 इस अनूठी टैग के लिए खोज करने के लिए सक्षम हो। 268 00:19:16,530 --> 00:19:19,530 और इस मामले में, यह है हमें होता है, जो एक आईडी, 269 00:19:19,530 --> 00:19:26,810 के लिए खोज की हमारी अगली तरह से करने के लिए टैग, जो एक हैशटैग के साथ है। 270 00:19:26,810 --> 00:19:30,670 >> कक्षाओं के लिए, आप कर सकते हैं तो डॉट ऑपरेटर का उपयोग करें। 271 00:19:30,670 --> 00:19:38,610 तो .txt, TXT के एक वर्ग को निर्दिष्ट किया जाता है हैश जबकि एक आईडी निर्दिष्ट करता है। 272 00:19:38,610 --> 00:19:43,720 तो इस मामले में, टैग है अनुभाग, और आईडी postingbody है। 273 00:19:43,720 --> 00:19:47,780 >> तो यह हो जाता है और पाता है first-- हम कर रहे हैं, क्योंकि 274 00:19:47,780 --> 00:19:51,200 इस जाता at_css-- का प्रयोग और पहला तत्व पाता है कि 275 00:19:51,200 --> 00:19:57,180 खंड के टैग के साथ आता है और postingbody की आईडी। 276 00:19:57,180 --> 00:20:02,636 और फिर आप पाठ तत्व का उपयोग कर सकते हैं उस आइटम की .text के साथ लौट आए। 277 00:20:02,636 --> 00:20:06,230 और फिर हम स्टोर कर सकते हैं विवरण में है। 278 00:20:06,230 --> 00:20:09,370 >> तो अब हम एक है चर विवरण 279 00:20:09,370 --> 00:20:14,850 हम कहते हैं, ऐसा करने में सक्षम हो सकता है मैं / हे फ़ाइल। तो रूबी में आई / ओ दाखिल 280 00:20:14,850 --> 00:20:21,310 / हे मैं फ़ाइल के समान है सी में हम एक फ़ाइल को खोलने जहां। 281 00:20:21,310 --> 00:20:23,260 हम यह करने के लिए लिख सकता है। 282 00:20:23,260 --> 00:20:25,060 और फिर हम उस फ़ाइल को बंद कर देंगे। 283 00:20:25,060 --> 00:20:29,660 >> यहाँ तो, हम सिर्फ नामकरण कर रहे हैं , कुछ मनमाने ढंग से चर फ़ाइल। 284 00:20:29,660 --> 00:20:33,120 हम भी बस यहाँ इस डाल सकता है। 285 00:20:33,120 --> 00:20:39,630 हम भंडारण कर रहे हैं कि एक चर है File.open के साथ खुले रूप में फ़ाइल। 286 00:20:39,630 --> 00:20:46,370 और हम इस फाइल करने के लिए लिख रहे हैं इसलिए हम w ऑपरेटर के साथ खुला। 287 00:20:46,370 --> 00:20:54,280 और फिर हम में स्ट्रिंग डाल .puts ऑपरेटर के साथ फ़ाइल। 288 00:20:54,280 --> 00:20:58,310 और फिर हम चर रखा है कि हम कि भीतर फाइल करने के लिए लिखना चाहते हैं। 289 00:20:58,310 --> 00:21:00,200 और फिर हम सिर्फ फ़ाइल बंद करें। 290 00:21:00,200 --> 00:21:04,000 >> इसलिए हम आगे जाना है और इस चलाते हैं, यह एक दस्तावेज प्रस्तुत करना चाहिए 291 00:21:04,000 --> 00:21:10,840 description.txt जिसके साथ होगा यह भीतर इस वर्णन किया है। 292 00:21:10,840 --> 00:21:14,015 तो अगर मैं कोई it-- चलाते हैं। 293 00:21:14,015 --> 00:21:17,520 294 00:21:17,520 --> 00:21:23,330 यह साथ एक पाठ फ़ाइल का उत्पादन किया है उम्मीद है कि, एक ही बात है। 295 00:21:23,330 --> 00:21:25,850 296 00:21:25,850 --> 00:21:33,290 तो एक नई पोस्टिंग वहाँ गया हो सकता है मैं बात कर रहा है, जबकि यह मुद्दा उठा रहा है। 297 00:21:33,290 --> 00:21:36,580 कर दिया गया है की तरह है और वास्तव में यह लग रहा है। 298 00:21:36,580 --> 00:21:43,380 इसलिए हम इस क्लासिक बाइक के लिए जाना है, 1962 1966 के लिए, कि मैच के लिए लगता है। 299 00:21:43,380 --> 00:21:45,620 और वहाँ तुम जाओ। 300 00:21:45,620 --> 00:21:51,250 >> तो यह है कि सबसे बुनियादी है स्क्रैप की कार्यक्षमता। 301 00:21:51,250 --> 00:21:57,510 हम बजाय हो सकता था सिर्फ इस फाइल करने के लिए लिख रहे हैं, 302 00:21:57,510 --> 00:21:59,930 हम एक सरणी के लिए चीजों को जोड़ सकते हैं। 303 00:21:59,930 --> 00:22:03,770 मैं तीन सरणियों की घोषणा करते हैं तो, शीर्षक, मूल्य, और विवरण। 304 00:22:03,770 --> 00:22:06,310 305 00:22:06,310 --> 00:22:13,790 और हम अब डॉक्टर आइटम पर काम कर रहे हैं। 306 00:22:13,790 --> 00:22:16,940 हम के माध्यम से जाने के लिए और कर सकते हैं span.txt के सभी पाते हैं। 307 00:22:16,940 --> 00:22:21,710 और यह एक सरणी देता है, याद यह पाता है कि सभी मदों की। 308 00:22:21,710 --> 00:22:27,300 और फिर रूबी में, आप बस का उपयोग कर सकते हैं हर आइटम के माध्यम से पुनरावृति .प्रत्येक 309 00:22:27,300 --> 00:22:28,410 सरणी की। 310 00:22:28,410 --> 00:22:31,330 और फिर प्रत्येक आइटम के लिए, मैं सिर्फ यह कॉल करने के लिए जा रहा हूँ 311 00:22:31,330 --> 00:22:34,620 , क्योंकि है कि एक लिंक यह है अनिवार्य रूप से क्या। 312 00:22:34,620 --> 00:22:46,830 >> इसलिए मैं प्रत्येक link.css डॉट a.hdrlnk रखा है, यह वास्तव में कड़ी करने के लिए जा रहा है 313 00:22:46,830 --> 00:22:58,280 और उस लिंक पर एक और भीतर की खोज HTML तत्व और इसी वर्ग। 314 00:22:58,280 --> 00:23:04,990 तो अगर हम क्या याद यह, span.txt था 315 00:23:04,990 --> 00:23:13,160 तुम मुझे अभी वापस जाने दिया see- कर सकते हैं span.txt भीतर वास्तविक quick-- 316 00:23:13,160 --> 00:23:17,490 हम अन्य वर्गों की एक बहुत कुछ है। 317 00:23:17,490 --> 00:23:27,180 तो span.txt अंदर है, हम देख रहे हैं एक वर्ग hdrlnk के साथ एक एक टैग के लिए। 318 00:23:27,180 --> 00:23:29,890 तो मुझे सिर्फ पाते हैं कि चलो तुम लोगों को जल्दी असली के लिए। 319 00:23:29,890 --> 00:23:37,390 320 00:23:37,390 --> 00:23:42,850 >> आप यहाँ देख सकते हैं तो, यह एक एक टैग है उस वर्ग TXT की अवधि के भीतर है 321 00:23:42,850 --> 00:23:44,920 उस वर्ग hdrlnk है। 322 00:23:44,920 --> 00:23:47,610 और कहा कि वास्तव में क्या हो रहा है हम पाने के लिए कोशिश कर रहे हैं। 323 00:23:47,610 --> 00:23:54,680 >> तो क्या अब हम सभी स्टोर करने के लिए कोशिश कर रहे हैं शीर्षक के अंदर उन कड़ियों की। 324 00:23:54,680 --> 00:23:59,545 और फिर हम मुद्रित करने के लिए जा रहे हैं उन कड़ियों में से प्रत्येक के बाहर। 325 00:23:59,545 --> 00:24:00,360 कोई खेद नहीं। 326 00:24:00,360 --> 00:24:04,530 हम बाहर मुद्रित करने के लिए जा रहे हैं उन में से प्रत्येक की कीमत। 327 00:24:04,530 --> 00:24:09,350 तो चलो वास्तव में इस चलाते हैं त्वरित और यह क्या करता है देखते हैं। 328 00:24:09,350 --> 00:24:14,680 329 00:24:14,680 --> 00:24:17,720 >> तो यह सिर्फ मूल रूप से चला गया लिंक के प्रत्येक के माध्यम से 330 00:24:17,720 --> 00:24:27,310 बारी में, सवाल में टैग पहुँचा और फिर कीमत बाहर खींच लिया। 331 00:24:27,310 --> 00:24:33,910 और यह किया है कि क्योंकि के बाद आप शीर्षक में सब कुछ है, 332 00:24:33,910 --> 00:24:37,260 हम सिर्फ वहाँ शीर्षक संग्रहित किया है। 333 00:24:37,260 --> 00:24:40,180 हम सिर्फ कड़ी संग्रहित किया है सरणी शीर्षक के भीतर। 334 00:24:40,180 --> 00:24:47,720 और लूप ऑपरेशन के लिए इस में, जहां के बजाय a.hdrlnk के पास जाने की, 335 00:24:47,720 --> 00:24:50,490 हम एक span.price के लिए देख रहे हैं। 336 00:24:50,490 --> 00:24:56,500 मैं सिर्फ सच में जल्दी से मिल सकते हैं तो कीमत, आप तत्व का निरीक्षण किया, तो 337 00:24:56,500 --> 00:25:00,610 आप इसे एक अवधि है कि देखेंगे कीमत के वर्ग के साथ। 338 00:25:00,610 --> 00:25:04,670 और कहा कि अनिवार्य रूप से कैसे है हम वहाँ कीमत हो रही है। 339 00:25:04,670 --> 00:25:10,040 >> तो यह है कि वास्तव में है स्क्रैप की बुनियादी मामला। 340 00:25:10,040 --> 00:25:13,550 यही कारण है कि आप सभी को मिलता है एक पेज पर तत्वों 341 00:25:13,550 --> 00:25:16,510 कि, कहते हैं, आप पहले से ही का यूआरएल पता है। 342 00:25:16,510 --> 00:25:21,050 >> हम एक प्राप्त करना चाहते हैं तो गहराई में अधिक थोड़ा 343 00:25:21,050 --> 00:25:23,950 हम पृष्ठों के भीतर पन्नों नोच कर सकते हैं। 344 00:25:23,950 --> 00:25:28,480 और इस उदाहरण के लिए, मैं हूँ एक सीएसवी फाइल करने के लिए outputting हो। 345 00:25:28,480 --> 00:25:39,510 तो मैं यहाँ सीएसवी ऊपर की आवश्यकता होती हूँ रूबी नहीं है, क्योंकि अंदर ही, 346 00:25:39,510 --> 00:25:42,350 कार्यक्षमता है सिर्फ उत्पादन सीएसवी फाइल करने के लिए। 347 00:25:42,350 --> 00:25:45,030 तो यह है कि सुपर आसान है। 348 00:25:45,030 --> 00:25:48,710 मुझे बस अगले करने के लिए चलते हैं। 349 00:25:48,710 --> 00:25:51,640 350 00:25:51,640 --> 00:25:57,170 हम फ़ाइल आई / ओ कवर किया। इसलिए इस यह सी में है कि कैसे करने के लिए इसी तरह की है 351 00:25:57,170 --> 00:26:00,870 और हम किमोनो के लिए आगे बढ़ने से पहले, मैं बस आप कैसे सच में जल्दी दिखाता हूँ 352 00:26:00,870 --> 00:26:02,790 जगहें भीतर साइटों परिमार्जन करने के लिए। 353 00:26:02,790 --> 00:26:10,040 >> इसलिए हम पहले से ही कैसे सीखा रूबी में सरणियों घोषित करने के लिए। 354 00:26:10,040 --> 00:26:13,280 तो मैं बस एक घोषणा कर रहा हूँ मनमाना सरणियों का गुच्छा 355 00:26:13,280 --> 00:26:16,310 कि मैं भीतर डेटा भंडारण किया जाएगा। 356 00:26:16,310 --> 00:26:20,680 डॉक्टर उसी तरह से काम कर रहा है यह पिछले फ़ाइल में किया था। 357 00:26:20,680 --> 00:26:23,580 हम पता लगा, में जा रहे हैं span.txt के प्रत्येक। 358 00:26:23,580 --> 00:26:25,040 हम पहले से ही पता है। 359 00:26:25,040 --> 00:26:32,130 यही कारण है कि कंटेनर है जो प्रत्येक के भीतर लिंक हम चाहते हैं कि डेटा की गई है। 360 00:26:32,130 --> 00:26:40,800 >> यहाँ तो हम क्या कर रहे प्रत्येक के लिए है काल वर्ग TXT की कड़ी है, हम में जा रहे हैं 361 00:26:40,800 --> 00:26:45,720 और हम, एक टैग लगा रहे हैं इस बात का पहला तत्व की खोज। 362 00:26:45,720 --> 00:26:49,937 , सीएसएस सरणी देता है, याद रखें के रूप में है तो आप सिर्फ यह नहीं पहुँच सकते हैं। 363 00:26:49,937 --> 00:26:51,520 हम पहला तत्व खोजने के लिए जा रहे हैं। 364 00:26:51,520 --> 00:26:56,430 यह एक की एक सरणी यहां तक ​​कि अगर आइटम आप इस वाक्य रचना का उपयोग किया है, 365 00:26:56,430 --> 00:26:58,800 और फिर href गुण बाहर खींच। 366 00:26:58,800 --> 00:27:01,800 >> इसलिए हम यह पहले किया था। 367 00:27:01,800 --> 00:27:04,440 इसलिए इस परिचित दिखना चाहिए। 368 00:27:04,440 --> 00:27:14,330 और इसलिए अब हम एक सरणी है हमारे लिंक के सभी के बुलाया रास्तों 369 00:27:14,330 --> 00:27:16,590 हम प्रयोग करना चाहते करने के लिए जा रहे हैं। 370 00:27:16,590 --> 00:27:21,350 इसलिए हम सभी का यह सरणी है हम उपयोग करना चाहते हैं कि रास्तों की, 371 00:27:21,350 --> 00:27:26,840 हम तो प्रत्येक के लिए एक आइटम बना सकते हैं उन पृष्ठों की है कि हम उस पेज खोलते हैं। 372 00:27:26,840 --> 00:27:31,150 हम भी पर देखा तो इससे पहले, जहां वाक्य रचना 373 00:27:31,150 --> 00:27:37,450 पथ के साथ स्ट्रिंग प्रक्षेप कर रही है यहाँ, इसलिए वाक्य रचना सिर्फ पथ के लिए है। 374 00:27:37,450 --> 00:27:41,450 और मैं इस नाम सकता है चर किसी भी मनमाने ढंग नाम। 375 00:27:41,450 --> 00:27:43,070 >> इस महत्वपूर्ण एक है। 376 00:27:43,070 --> 00:27:46,650 मतलब यह है कि आप हूँ सरणी है प्रत्येक तत्व तक पहुँचने की। 377 00:27:46,650 --> 00:27:52,400 लेकिन अगर आप रास्ते में पथ के लिए कहते हैं, इस पथ में प्रत्येक तत्व के लिए इसका मतलब है, 378 00:27:52,400 --> 00:27:55,150 पथ इसे कहते हैं, और उस का उपयोग करें। 379 00:27:55,150 --> 00:27:59,266 यह जब आप की तरह अनिवार्य है पाश के लिए एक करते हैं और आप मैं पूर्णांक का उपयोग करें। 380 00:27:59,266 --> 00:28:04,000 तो क्या आप के रूप में पथ इलाज कर सकते हैं incrementing है कि चर। 381 00:28:04,000 --> 00:28:07,820 >> और फिर उन लोगों में से प्रत्येक के लिए, उन कड़ियों में से प्रत्येक में जाना। 382 00:28:07,820 --> 00:28:11,710 हम आइटम पेज में यह भंडारण कर रहे हैं, क्योंकि इसलिए हम हर बार एक नया पेज बना रहे हैं 383 00:28:11,710 --> 00:28:13,330 हम इसे उपयोग। 384 00:28:13,330 --> 00:28:20,560 और फिर उस नए पेज के भीतर मिल span.postingtitletext, span.price, 385 00:28:20,560 --> 00:28:22,240 और फिर अनुभाग # postingbody। 386 00:28:22,240 --> 00:28:28,430 हम पहले से ही अनुभाग # postingbody कवर हम विवरण को देखा है। 387 00:28:28,430 --> 00:28:34,890 >> इसलिए हम क्रेगलिस्ट पोस्ट में देख जा सकते हैं, आप सिर्फ शीर्षक पर देख रहे हैं, 388 00:28:34,890 --> 00:28:38,810 आप इसे यहाँ देख सकते हैं काल postingtitletext। 389 00:28:38,810 --> 00:28:41,390 यह वहाँ है और यही कारण है। 390 00:28:41,390 --> 00:28:49,120 और फिर कीमत के लिए, आप कर सकते हैं कीमत की अवधि वर्ग के साथ इसे उपयोग। 391 00:28:49,120 --> 00:28:54,480 >> इसलिए हम भी शायद हो सकता है यूआरएल संग्रहीत करना चाहते हैं। 392 00:28:54,480 --> 00:28:58,580 तो हम बस यह चलने देंगे फिर, एक सरणी में स्टोर, 393 00:28:58,580 --> 00:29:01,150 आप देख रहे हैं, क्योंकि Craigslist पर, आप कर रहे हैं 394 00:29:01,150 --> 00:29:05,290 शायद, तो एक तरह से करना चाहते करने जा आप कुछ है कि हितों को देखने 395 00:29:05,290 --> 00:29:06,620 वापस उस साइट पर जाना है। 396 00:29:06,620 --> 00:29:10,480 तो तुम सिर्फ संग्रहीत करना चाहते हैं संदर्भों खातिर यूआरएल। 397 00:29:10,480 --> 00:29:13,840 398 00:29:13,840 --> 00:29:19,630 >> यह सिर्फ अनिवार्य है पाश के लिए के लिए एक और सिंटेक्स। 399 00:29:19,630 --> 00:29:26,360 मैं बस के बजाय paths.each कर सकता है के सूचकांक के साथ रास्ते में पथ के लिए। 400 00:29:26,360 --> 00:29:31,280 और इस वाक्य रचना रूबी है for-- पथ, हम यहाँ तक क्या किया है 401 00:29:31,280 --> 00:29:33,920 प्रत्येक आइटम के लिए एक चर घोषित। 402 00:29:33,920 --> 00:29:38,540 और सूचकांक की तरह बर्ताव छोरों के लिए सी में मैं। 403 00:29:38,540 --> 00:29:41,280 तो अगर आप ट्रैक रख सकते हैं सूचकांक क्या है की। 404 00:29:41,280 --> 00:29:45,200 >> यहाँ तो सिर्फ एक है थोड़ा सुविधाजनक बात 405 00:29:45,200 --> 00:29:46,950 आप खुरचनी चल रहे हैं के लिए। 406 00:29:46,950 --> 00:29:50,580 आप पृष्ठों की सैकड़ों स्क्रैप कर रहे हैं, यह फांसी नहीं कर रहा है कि यह सुनिश्चित करना, 407 00:29:50,580 --> 00:29:53,320 यह सिर्फ उत्पादन होगा मैं इस पेज तक पहुँचने हूँ, 408 00:29:53,320 --> 00:29:55,960 और यह सुनिश्चित करने कि यह अभी भी जारी है। 409 00:29:55,960 --> 00:29:59,250 लेकिन हमारे उद्देश्यों के लिए है, क्योंकि एक सौ आइटम नहीं है, 410 00:29:59,250 --> 00:30:08,000 मैं उनमें से सिर्फ तीन का उपयोग करने के लिए जा रहा हूँ हम यहाँ समय से बाहर चलाने के लिए नहीं है कि इतनी। 411 00:30:08,000 --> 00:30:13,040 >> हम उस के लिए मिलता है लेकिन इससे पहले कि मैं अभी कर रहा हूँ आप बहुत जल्दी दिखाने के लिए जा रहा है, 412 00:30:13,040 --> 00:30:16,940 मैं शीर्षक outputting किया जाएगा, मूल्य, विवरण, और यूआरएल 413 00:30:16,940 --> 00:30:19,600 मैं scraped है कि लिंक के प्रत्येक की। 414 00:30:19,600 --> 00:30:23,720 और फिर यह सिर्फ है सीएसवी पुस्तकालय के लिए सिंटेक्स। 415 00:30:23,720 --> 00:30:25,240 आप एक सीएसवी खुला। 416 00:30:25,240 --> 00:30:27,070 यह मैं यह कॉल करने के लिए जा रहा हूँ क्या है। 417 00:30:27,070 --> 00:30:29,430 लिख सकता हूँ के साथ खुला। 418 00:30:29,430 --> 00:30:33,830 और फिर सीएसवी फाइल किया जाएगा कि आप सब कुछ inputting रहे हैं। 419 00:30:33,830 --> 00:30:37,800 इस के लिए सिर्फ एक मानसिक स्वास्थ्य की जांच है मुझे यह चल रहा है कि पता है। 420 00:30:37,800 --> 00:30:41,240 और यह मेरा मानसिक स्वास्थ्य की जांच है यह पूरा हो गया है कि पता करने के लिए। 421 00:30:41,240 --> 00:30:46,670 इसलिए मैं में एक पंक्ति में खिताब डाल रहा हूँ सीएसवी, मूल्य, यूआरएल, विवरण, 422 00:30:46,670 --> 00:30:49,420 सभी सीएसवी में पंक्तियों में। 423 00:30:49,420 --> 00:30:53,410 >> हम चलते हैं और चलाते हैं तो इस now-- और मैं बस 424 00:30:53,410 --> 00:31:04,710 मैं it-- बजाय बचाया है कि यह सुनिश्चित कर लें की बस टर्मिनल के लिए यह outputting, 425 00:31:04,710 --> 00:31:09,750 हम एक सीएसवी होना चाहिए उत्पादन किया है कि फ़ाइल। 426 00:31:09,750 --> 00:31:13,500 यहाँ तो हम सीएसवी देख सकते हैं उत्पादन किया गया है कि फ़ाइल। 427 00:31:13,500 --> 00:31:19,330 इस का उत्पादन होता है मैं सिर्फ भाग गया है कि पलायन। 428 00:31:19,330 --> 00:31:23,030 आप यहां देख सकते हैं, पहुँचने पेज 0, 1, 2, 3। 429 00:31:23,030 --> 00:31:27,400 ये खिताब कर रहे हैं, कीमतों, विवरण। 430 00:31:27,400 --> 00:31:31,710 और हम इस सीएसवी पर नजर डालें तो हम उत्पन्न किया है कि फ़ाइल, 431 00:31:31,710 --> 00:31:35,700 आप अपने यहाँ outputted देख सकते हैं। 432 00:31:35,700 --> 00:31:40,350 यह Excel नहीं है, इसलिए यह नहीं है पंक्तियों और स्तंभों में स्वरूपित। 433 00:31:40,350 --> 00:31:45,140 लेकिन अगर आप सोच भी कैसे सकते हैं यह प्रारूपित किया जा सकता है। 434 00:31:45,140 --> 00:31:47,740 >> सीएसवी अल्पविराम से अलग मूल्यों के लिए खड़ा है। 435 00:31:47,740 --> 00:31:50,090 तो अगर आप इस एक पंक्ति हो सकता है कल्पना कर सकते हैं। 436 00:31:50,090 --> 00:31:54,700 और प्रत्येक अल्पविराम होगा एक अलग कॉलम संकेत मिलता है। 437 00:31:54,700 --> 00:32:00,010 सिर्फ चेतावनी का एक शब्द-- कभी कभी आप कर रहे हैं 438 00:32:00,010 --> 00:32:02,260 अल्पविराम के साथ एक बहुत बातें scraping। 439 00:32:02,260 --> 00:32:05,100 आप outputting रहे हैं तो अगर एक सीएसवी फाइल करने के लिए यह, 440 00:32:05,100 --> 00:32:10,340 यह नहीं हो सकता है उत्पादन आप सोच सकते हैं जिस तरह से। 441 00:32:10,340 --> 00:32:16,770 >> तो यह है कि अनिवार्य रूप से सभी के लिए है मूल HTML स्क्रैप करने के लिए नहीं है 442 00:32:16,770 --> 00:32:20,110 Nokogiri के साथ पृष्ठों। 443 00:32:20,110 --> 00:32:26,000 >> इंटरनेट जा रहा है तो अभिनव यह ऊपर आ गया है के रूप में 444 00:32:26,000 --> 00:32:33,220 एक और स्वचालित और जीयूआई के साथ कम मजबूत यद्यपि संस्करण, 445 00:32:33,220 --> 00:32:35,540 विभिन्न वेबसाइटों स्क्रैप का संस्करण। 446 00:32:35,540 --> 00:32:39,060 और हमारे उद्देश्यों के लिए मैं का प्रदर्शन किया जाएगा 447 00:32:39,060 --> 00:32:42,920 किमोनो नामक एक क्रोम एक्सटेंशन। 448 00:32:42,920 --> 00:32:46,690 और तुम सब करना है आप नेविगेट है आप परिमार्जन करने के लिए चाहते हैं कि पेज के लिए। 449 00:32:46,690 --> 00:32:48,590 आप ब्याज की एक क्षेत्र पर क्लिक करें। 450 00:32:48,590 --> 00:32:51,510 तुम क्षेत्रों जांचना, यह स्वचालित रूप से होगा क्योंकि 451 00:32:51,510 --> 00:32:54,360 यह सोचता है कि क्या पता लगा आप स्क्रैप होना चाहता हूँ, 452 00:32:54,360 --> 00:32:56,280 और फिर आप बस एक एपीआई पैदा करते हैं। 453 00:32:56,280 --> 00:33:03,700 >> अगर हम थे तो उस पर प्रदर्शित करने के लिए क्रेगलिस्ट, यह वास्तव में काम नहीं करेगा। 454 00:33:03,700 --> 00:33:08,290 और यह मैं करने के लिए वापस जा रहा था क्या है यह के रूप में मजबूत नहीं किया जा रहा बारे में कह रही। 455 00:33:08,290 --> 00:33:10,320 यह मुसीबत एपीआई बनाने की है। 456 00:33:10,320 --> 00:33:13,400 लेकिन एक प्रदर्शन के रूप में यह क्या करना होगा, 457 00:33:13,400 --> 00:33:17,460 आप क्रोम एक्सटेंशन स्थापित करते हैं तो, तुम सब करना है तो आप उस पर क्लिक करें। 458 00:33:17,460 --> 00:33:21,750 यह पेज Kimonofies, और फिर आप आप स्क्रिप्ट करना चाहते बात पर क्लिक करें। 459 00:33:21,750 --> 00:33:24,480 >> इसलिए मुझे लगता है पर क्लिक करने के लिए गए थे कि, यह प्रकाश डाला जाएगा 460 00:33:24,480 --> 00:33:28,130 क्या यह सोचता है कि मैं चाहता हूँ उस पृष्ठ बंद scraping किया। 461 00:33:28,130 --> 00:33:33,660 इसलिए हो सकता है कि मैं इस लिस्टिंग कहते हैं। 462 00:33:33,660 --> 00:33:36,430 यह मैं का चयन किया है कि कितने आइटम है। 463 00:33:36,430 --> 00:33:43,810 और मैं सिर्फ इस बात की पुष्टि या कुछ इनकार नहीं कर सकता अन्य सुझाव लिस्टिंग के 464 00:33:43,810 --> 00:33:49,600 इसे जोड़ने के लिए पाने के लिए क्या scraped किया जाएगा। 465 00:33:49,600 --> 00:33:52,330 >> तो अब हम वहाँ देख सकते हैं एक सौ आइटम का चयन किया। 466 00:33:52,330 --> 00:33:58,060 मैं एक और क्षेत्र है चाहता हूँ कि मैं भी इस से संबंधित है जो परिमार्जन, 467 00:33:58,060 --> 00:34:02,540 मैं कीमत परिमार्जन करने के लिए कहना चाहते हैं के रूप में अच्छी तरह से है, तो मैं वही कर सकता है। 468 00:34:02,540 --> 00:34:06,190 469 00:34:06,190 --> 00:34:11,550 >> यहाँ तो यह है कि कैसे एक प्रदर्शन है बहुत कम मजबूत है, अब यह है, क्योंकि 470 00:34:11,550 --> 00:34:15,050 बजाय शहर उठा मैं चाहता हूँ कि की सिर्फ कीमत। 471 00:34:15,050 --> 00:34:16,989 और अब यह 200 चीजों को उठाया है। 472 00:34:16,989 --> 00:34:19,880 तुम वापस जाओ और हटा सकते हैं। 473 00:34:19,880 --> 00:34:21,449 आप फिर से कोशिश कर सकते हैं। 474 00:34:21,449 --> 00:34:24,250 लेकिन कोई गारंटी। 475 00:34:24,250 --> 00:34:29,909 यह इस कभी कभी यह कैसे काम करता है। 476 00:34:29,909 --> 00:34:32,969 आप यहां देख सकते हैं, यह अब यहां 96 तक कहते हैं। 477 00:34:32,969 --> 00:34:37,000 यह लिंक का सबसे उठाया है आप चाहते हैं कि परिमार्जन, लेकिन नहीं करने के लिए 478 00:34:37,000 --> 00:34:39,280 जरूरी उन सभी को। 479 00:34:39,280 --> 00:34:43,909 >> किमोनो की एक और उपयोगी उपकरण है, हालांकि आप उन्नत सुविधाओं के लिए जा सकते है 480 00:34:43,909 --> 00:34:47,980 यहाँ, उन्नत करने के लिए जाना है, और यह आपको दिखाई देगा 481 00:34:47,980 --> 00:34:53,139 अनूठा का टूटना एचटीएमएल उपयोग करने का तरीका 482 00:34:53,139 --> 00:34:54,909 आप परिमार्जन करना चाहते हैं कि टैग। 483 00:34:54,909 --> 00:35:01,450 तो लिस्टिंग के लिए, आप यहाँ पर नजर डालें तो, आप div पी सी अवधि के अंतराल का उपयोग करते हैं, 484 00:35:01,450 --> 00:35:06,030 आप वास्तव में बस का उपयोग कर सकते हैं अपने Nokogiri कोड में यह, 485 00:35:06,030 --> 00:35:10,780 जहां हम span.txt था पहले लिस्टिंग के प्रत्येक पहुँचने के लिए। 486 00:35:10,780 --> 00:35:13,270 मैं सिर्फ पाठ चाहते हैं लिस्टिंग के भीतर, 487 00:35:13,270 --> 00:35:18,950 मैं कर सकता इनपुट div अंतरिक्ष पी अंतरिक्ष काल अंतरिक्ष काल अंतरिक्ष एक, 488 00:35:18,950 --> 00:35:21,570 और यह एक ही प्रभाव को प्राप्त होता है। 489 00:35:21,570 --> 00:35:26,320 और अगर आप उन लोगों के लिए रुचि रखते हैं नियमित अभिव्यक्ति का उपयोग करने में, 490 00:35:26,320 --> 00:35:31,670 यह भी है कि आप नियमित रूप से देने के लिए होता है निवेश करने के लिए स्ट्रिंग की अभिव्यक्ति के प्रकार 491 00:35:31,670 --> 00:35:34,900 चीजों को खोजने के लिए आप को खोजने की कोशिश कर रहे हैं। 492 00:35:34,900 --> 00:35:44,130 >> तो एक और शांत सुविधा नहीं है आप पृष्ठ पर अंक लगाना कर सकते हैं जहां किमोनो की, 493 00:35:44,130 --> 00:35:47,780 जो केवल मैं नोच कर सकते हैं नहीं है इस पेज के परिणाम, 494 00:35:47,780 --> 00:35:50,890 मैं इस छोटे पर क्लिक कर सकते हैं यहां बटन, अंक लगाना, 495 00:35:50,890 --> 00:35:55,580 बटन कि होता निर्दिष्ट अगले पृष्ठ पर मुझे लेने, 496 00:35:55,580 --> 00:35:59,500 और फिर यह सिर्फ इतना है कि पता चल जाएगा यह अगले पृष्ठ पर पुनरावृति कर सकते हैं, 497 00:35:59,500 --> 00:36:04,120 और फिर the-- रूप में लंबे समय के सभी परिमार्जन यह कोर्स की एक ही प्रारूप के रूप में 498 00:36:04,120 --> 00:36:06,110 साथ ही उन लिंक के सभी पलायन। 499 00:36:06,110 --> 00:36:15,230 >> किमोनो नहीं चाहता है क्योंकि ऐसा करने के लिए हम क्या किया है, Craigslist के साथ काम 500 00:36:15,230 --> 00:36:19,790 मैं हार्वर्ड क्रिमसन Kimonofied दिया है। 501 00:36:19,790 --> 00:36:29,380 मैं की तरह के कुछ बाहर खींच लिया है शीर्ष लेख, यहां इस बात की पुष्टि चित्रित किया। 502 00:36:29,380 --> 00:36:33,090 इनमें से सब कहते हैं। 503 00:36:33,090 --> 00:36:35,830 मैं इस एपीआई संकलित किया है समय से आगे तुम्हारे लिए। 504 00:36:35,830 --> 00:36:38,990 लेकिन आप क्या करेंगे अन्यथा क्या आप बस क्लिक करें ठीक होता है। 505 00:36:38,990 --> 00:36:40,940 अपने एपीआई विवरण में दर्ज करें। 506 00:36:40,940 --> 00:36:45,260 इसे स्थापित करने के लिए या तो स्वचालित या मैनुअल क्रॉल। 507 00:36:45,260 --> 00:36:48,460 तो अगर आप अद्यतन सकता आपके डेटा हर 15 मिनट, 508 00:36:48,460 --> 00:36:50,330 साप्ताहिक, दैनिक, जो आप चाहते हैं। 509 00:36:50,330 --> 00:36:51,160 अपने एपीआई का नाम। 510 00:36:51,160 --> 00:36:52,790 एपीआई बनाएँ। 511 00:36:52,790 --> 00:36:58,460 अपने लाभ के लिए, मैं बना लिया है पहले से ही सामने पृष्ठ एपीआई क्रिमसन। 512 00:36:58,460 --> 00:37:02,480 >> तो तुम सिर्फ एक बनाने किमोनो पर खाता है, और यह 513 00:37:02,480 --> 00:37:06,240 आप के लिए अपने सभी एपीआई की दुकान है। 514 00:37:06,240 --> 00:37:10,330 तो अनिवार्य रूप से वह सब है आपके अलग अलग scrapes। 515 00:37:10,330 --> 00:37:18,250 >> हम यहाँ देखो तो, अगर यह है मैं एकत्र किया है कि राय लिंक। 516 00:37:18,250 --> 00:37:21,290 ये विशेष रुप से प्रदर्शित कर रहे हैं मैं एकत्र किया है कि लिंक। 517 00:37:21,290 --> 00:37:24,090 और इन सबसे अधिक पढ़ा रहे हैं मैं एकत्र किया है कि लिंक 518 00:37:24,090 --> 00:37:27,120 इस सबसे हाल ही एपीआई भगदड़ से। 519 00:37:27,120 --> 00:37:30,790 >> आप यहाँ देख सकते हैं तो, इन, विशेष रुप से होगा 520 00:37:30,790 --> 00:37:34,130 इन विचारों होगा, इस उदाहरण में, जो 521 00:37:34,130 --> 00:37:38,150 मैं उन सभी को संयुक्त है एक संग्रह में। 522 00:37:38,150 --> 00:37:42,780 लेकिन तुम सिर्फ यह आसपास के साथ खेलते हैं एक छोटा सा है, आप इसे विभाजित कर सकते हैं 523 00:37:42,780 --> 00:37:45,090 और फिर भी इसे विभाजित आप जब तक करना चाहते हैं 524 00:37:45,090 --> 00:37:47,520 स्वरूपण के रूप में थोड़ा अलग है। 525 00:37:47,520 --> 00:37:51,320 >> बस इस के साथ चारों ओर खेलने के लिए, क्रॉल, downsides की एक स्थापित 526 00:37:51,320 --> 00:37:58,120 आप केवल ऊपर क्रॉल कर सकते है एक समय में 25 पृष्ठों के लिए। 527 00:37:58,120 --> 00:38:00,430 यही कारण है कि सीमित कारकों में से एक है। 528 00:38:00,430 --> 00:38:03,060 लेकिन यहाँ, आप यह निर्धारित करता है, तो मैनुअल क्रॉल करने के लिए, इस 529 00:38:03,060 --> 00:38:06,100 आप यह कैसे कह सकते है अपने डेटा को अद्यतन करने के लिए। 530 00:38:06,100 --> 00:38:11,010 और यहाँ आप अपने क्रॉल इतिहास देख सकते हैं सब कुछ के आप रेंगा किया है। 531 00:38:11,010 --> 00:38:16,000 और तुम लोग वापस जा सकते हैं, साइन अप, सब अलग अलग तरीकों के साथ खेलने के आसपास 532 00:38:16,000 --> 00:38:20,340 कि आप संशोधित करने और अपने डेटा का उपयोग कर सकते हैं। 533 00:38:20,340 --> 00:38:24,580 >> किमोनो को स्थापित किया जा सकता लिंक के अंदर लिंक परिमार्जन। 534 00:38:24,580 --> 00:38:29,700 और अगर आप पहले से ऐसा ही करेंगे, लिंक की सूची स्क्रैप, 535 00:38:29,700 --> 00:38:35,390 और फिर एक के रूप में है कि एपीआई का उपयोग एक और एपीआई के लिए बिंदु से कूद 536 00:38:35,390 --> 00:38:36,710 आप स्क्रिप्ट बना है। 537 00:38:36,710 --> 00:38:42,040 लेकिन यह है कि अधिक से अधिक जटिल है क्या हम आज में शामिल होने के लिए जा रहे हैं। 538 00:38:42,040 --> 00:38:44,270 >> तो यह है कि किमोनो है। 539 00:38:44,270 --> 00:38:46,980 हम पेशेवरों के बारे में बात करेंगे और Nokogiri और किमोनो की विपक्ष। 540 00:38:46,980 --> 00:38:50,380 >> Nokogiri, यह वास्तव में तेजी है। 541 00:38:50,380 --> 00:38:51,640 यह परीक्षण करने के लिए आसान है। 542 00:38:51,640 --> 00:38:55,910 तुम बस के लिए कुछ भी कर सकते हैं डालता कंसोल, आसान विन्यस्त करने के लिए। 543 00:38:55,910 --> 00:39:00,400 आप वास्तव में क्या तय कर सकते हैं आप परिमार्जन और स्टोर करने के लिए चाहते हैं। 544 00:39:00,400 --> 00:39:02,060 कोई पेज सीमा नहीं है। 545 00:39:02,060 --> 00:39:08,010 मैं वास्तव में ऐसा परिमार्जन करने के लिए इसका इस्तेमाल किया 1800 में दक्षिण अफ्रीका के स्कूल वेबसाइटों 546 00:39:08,010 --> 00:39:10,870 मैंने किया था कि एक इंटर्नशिप के लिए ईमेल के लिए। 547 00:39:10,870 --> 00:39:16,060 >> तो यह है कि संभव है, सबसे अच्छा अभ्यास यद्यपि स्क्रिप्ट को विभाजित करने के लिए किया जाएगा। 548 00:39:16,060 --> 00:39:19,310 यह तो विफल रहता है, क्योंकि अगर आप कुछ भी नहीं मिलता है। 549 00:39:19,310 --> 00:39:22,790 लेकिन अगर आप एक सौ करते हैं, शायद एक समय में 200 पृष्ठों, 550 00:39:22,790 --> 00:39:27,840 तो आप में से कुछ का मौका दिया है, कम से कम विशेष रूप से, टुकड़ों में यह हो रही है 551 00:39:27,840 --> 00:39:30,280 अगर आप बुरा इंटरनेट है। 552 00:39:30,280 --> 00:39:32,720 >> दुर्भाग्य से यह केवल HTML नोच कर सकते हैं। 553 00:39:32,720 --> 00:39:35,190 इसलिए यदि आप गतिशील रूप से लोड pages-- 554 00:39:35,190 --> 00:39:39,480 और मैं आपको एक उदाहरण दिखाता हूँ एक second-- में नाव की तरह 555 00:39:39,480 --> 00:39:42,270 Nokogiri दुर्भाग्य से कि परिमार्जन नहीं कर सकते हैं। 556 00:39:42,270 --> 00:39:45,700 >> लेकिन किमोनो भी प्रयोग करने में आसान है। 557 00:39:45,700 --> 00:39:48,330 तुम्हें देखा था के रूप में, यह अनिवार्य है एक बिंदु पर क्लिक करें। 558 00:39:48,330 --> 00:39:50,260 यह जावास्क्रिप्ट नोच कर सकते हैं। 559 00:39:50,260 --> 00:39:53,790 दुर्भाग्य से, एक अधिकतम वहाँ आप नोच कर सकते हैं कि कितने पृष्ठों के लिए। 560 00:39:53,790 --> 00:39:55,710 कभी कभी यह एक छोटी सी है विन्यस्त करने के लिए मेहनत की है। 561 00:39:55,710 --> 00:39:57,240 यह भ्रमित हो जाता है। 562 00:39:57,240 --> 00:40:00,920 लेकिन यह निश्चित रूप से है कुछ विचार करने के लिए 563 00:40:00,920 --> 00:40:05,930 आप एक करने की कोशिश नहीं कर रहे हैं सुपर मजबूत पोषणीय परिमार्जन। 564 00:40:05,930 --> 00:40:09,010 आप सिर्फ प्राप्त करना चाहते हैं जल्दी से एक पेज के बंद सब कुछ, 565 00:40:09,010 --> 00:40:10,970 तो किमोनो एक सच है अच्छा उपकरण का उपयोग करने के लिए। 566 00:40:10,970 --> 00:40:16,490 जैसा कि मैंने पहले उल्लेख किया है, वहाँ किमोनो की उन्नत सुविधा 567 00:40:16,490 --> 00:40:19,260 कि कैसे करने के लिए आपको पता चलता है अनूठा एचटीएमएल का उपयोग 568 00:40:19,260 --> 00:40:24,210 यहां तक ​​कि सुपर उपयोगी है जो तत्व है, आप Nokogiri में काम कर रहे हैं। 569 00:40:24,210 --> 00:40:30,370 >> तो अगर हम के लिए, कश्ती साइट पर जाना उदाहरण के लिए, आप वहाँ देख सकते है- 570 00:40:30,370 --> 00:40:31,750 या हो सकता है आप नहीं देख सकते हैं। 571 00:40:31,750 --> 00:40:38,910 लेकिन मैं कश्ती के लिए आप URL दिखाने के लिए, यह वास्तव में सिर्फ स्रोत यूआरएल है। 572 00:40:38,910 --> 00:40:43,800 यह जा रहा है के लिए URL पहले है जो कुछ जावास्क्रिप्ट लिपियों द्वारा संशोधित 573 00:40:43,800 --> 00:40:45,350 कि वे पर जा रहा है। 574 00:40:45,350 --> 00:40:52,420 और यह अलग लग रहा है तत्व का निरीक्षण से। 575 00:40:52,420 --> 00:40:55,940 >> तो क्या आप के माध्यम से जाने के लिए और अगर आप निरीक्षण तत्व मैच 576 00:40:55,940 --> 00:41:00,340 स्रोत कोड के लिए कोड है, यह वास्तव में अलग होने जा रहा। 577 00:41:00,340 --> 00:41:05,640 और ऐसा क्यों Nokogiri अनिवार्य है गतिशील रूप से लोड साइटों परिमार्जन नहीं कर सकते हैं। 578 00:41:05,640 --> 00:41:08,810 Nokogiri है क्योंकि स्रोत यूआरएल स्क्रैप, 579 00:41:08,810 --> 00:41:16,310 किमोनो वास्तव में है, जबकि आप अनिवार्य रूप से क्या कर रहे हैं स्क्रैप 580 00:41:16,310 --> 00:41:18,260 चुनें तत्व में देखकर। 581 00:41:18,260 --> 00:41:23,880 >> इसलिए मुझे लगता है के माध्यम से और मैं जाने के लिए अगर कोशिश करते हैं और Kimonofy कश्ती, 582 00:41:23,880 --> 00:41:26,600 मैं वास्तव में के माध्यम से जा सकते हैं और कीमत का चयन करें। 583 00:41:26,600 --> 00:41:32,360 यह थोड़ा कठिन है और इस मामले में, यह है 584 00:41:32,360 --> 00:41:36,600 वास्तव में इस कीमत को देखकर इन से अलग। 585 00:41:36,600 --> 00:41:41,110 आप configure-- सकते हैं, जबकि तो या इस गतिशील रूप से लोड नहीं कर रहे थे, 586 00:41:41,110 --> 00:41:43,620 आप Nokogiri विन्यस्त कर इन सभी को पाने के लिए। 587 00:41:43,620 --> 00:41:48,230 >> स्वरूपण थोड़ा है, क्योंकि इस लिस्टिंग के लिए अलग-अलग 588 00:41:48,230 --> 00:41:51,280 यह बाकी की तुलना में है के रूप में उनमें से हैं, और आप यहाँ देख सकते हैं 589 00:41:51,280 --> 00:41:54,830 यह वास्तव में चला गया है और चयनित सभी उड़ान कीमतों। 590 00:41:54,830 --> 00:42:01,200 हो सकता है कि मैं चयन करना चाहते हैं के रूप में अच्छी तरह से उड़ान का समय है। 591 00:42:01,200 --> 00:42:04,700 और मुझे लगता है के माध्यम से जाना जा सकता है और एक तरह से है कि विन्यस्त करें। 592 00:42:04,700 --> 00:42:06,950 मैं नहीं चाहता कि। 593 00:42:06,950 --> 00:42:10,200 मैं सिर्फ अगली उड़ान के लिए समय चाहते हैं। 594 00:42:10,200 --> 00:42:17,030 और फिर इनमें से एक जोड़े के बाद के माध्यम से जा रहे हैं, यह चित्र हो जाता है। 595 00:42:17,030 --> 00:42:19,080 तो किमोनो बहुत चालाक। 596 00:42:19,080 --> 00:42:21,900 यह बस के रूप में काफी मजबूत नहीं है। 597 00:42:21,900 --> 00:42:26,710 >> कुछ अन्य कर रहे हैं आप उपयोग कर सकते हैं कि विकल्प। 598 00:42:26,710 --> 00:42:31,600 और मैं यहाँ आप उन्हें दिखा देंगे। 599 00:42:31,600 --> 00:42:35,790 आप में और अधिक आराम कर रहे हैं बजाय शायद रूबी का अजगर, 600 00:42:35,790 --> 00:42:39,290 एक पुस्तकालय है ब्यूटीफुल सूप बुलाया। 601 00:42:39,290 --> 00:42:40,430 आप उसका इस्तेमाल कर सकते हैं। 602 00:42:40,430 --> 00:42:42,270 यह Nokogiri के समान है। 603 00:42:42,270 --> 00:42:44,620 यह कुछ अधिक सुविधाएँ है। 604 00:42:44,620 --> 00:42:52,160 आप एचटीएमएल टैग मिल सकता है और तो ऊपर ले जाएँ या बग़ल में ले जाते हैं। 605 00:42:52,160 --> 00:42:54,690 >> PyQt है। 606 00:42:54,690 --> 00:42:57,820 यह वास्तव में गतिशील नोच कर सकते हैं साइटों, यह एक तरह से है, क्योंकि 607 00:42:57,820 --> 00:43:02,540 होने का दिखावा करता है कि एक वेबकिट है वहाँ वास्तव में बिना एक ब्राउज़र 608 00:43:02,540 --> 00:43:03,670 एक ब्राउज़र की जा रही है। 609 00:43:03,670 --> 00:43:07,490 इसलिए यह सभी के लिए इंतजार करना होगा जावास्क्रिप्ट तो पहले से लोड है, और करने के लिए 610 00:43:07,490 --> 00:43:09,560 में जाने के लिए और कोशिश करते हैं और साइट परिमार्जन। 611 00:43:09,560 --> 00:43:13,560 >> आप रूबी के साथ रहना चाहते हैं, तो आप Nokogiri से एक स्तर तक जा सकता है। 612 00:43:13,560 --> 00:43:17,650 आप के साथ Capybara उपयोग कर सकते हैं एक Poltergeist आवरण। 613 00:43:17,650 --> 00:43:22,910 और यह वास्तव में कर सकते हैं अनिवार्य रूप से एक ही बात करना 614 00:43:22,910 --> 00:43:26,610 PyQt, जो के रूप में यह एक वेबकिट है। 615 00:43:26,610 --> 00:43:29,610 इसके लिए इंतजार कर रहा है जावास्क्रिप्ट पहले लोड करने के लिए। 616 00:43:29,610 --> 00:43:33,340 यदि आपके पास पर्याप्त इसके साथ बेला के आसपास हैं, आप भी इसे चीजों पर क्लिक करने के लिए मिल सकता है। 617 00:43:33,340 --> 00:43:42,780 >> एक लिंक है कि अगर वहाँ तो यह है कि एक क्लासिक href जहां नहीं है 618 00:43:42,780 --> 00:43:46,350 पथ आसानी से सुलभ है, और यह पता लगाता है कि कुछ जावास्क्रिप्ट बात है 619 00:43:46,350 --> 00:43:49,490 एक क्लिक, आप वास्तव में ऐसा कर सकते हैं। 620 00:43:49,490 --> 00:43:53,430 और अधिक लोकप्रिय पुस्तकालय एक उपयोगकर्ता अनुकरण करने के लिए 621 00:43:53,430 --> 00:43:56,390 PhantomJS है जो जावास्क्रिप्ट में है। 622 00:43:56,390 --> 00:44:01,010 यह स्पष्ट रूप से गतिशील नोच कर सकते हैं साइटों यह अनिवार्य है क्योंकि 623 00:44:01,010 --> 00:44:04,270 क्रोम होने का नाटक यूजर इंटरफेस के बिना। 624 00:44:04,270 --> 00:44:09,970 >> और फिर, बेशक सबसे मजबूत, लेकिन धीमी विकल्प, 625 00:44:09,970 --> 00:44:13,260 एक सेलेनियम ब्राउज़र स्वचालन है। 626 00:44:13,260 --> 00:44:15,550 और दुर्भाग्य से, आप होना नहीं जा रहे हैं 627 00:44:15,550 --> 00:44:19,770 अपने CS50 आईडीई के भीतर ऐसा करने में सक्षम। 628 00:44:19,770 --> 00:44:24,140 अनिवार्य रूप से क्या क्योंकि यह करता है, यह आपके क्रोम जूते है 629 00:44:24,140 --> 00:44:27,090 फ़ायरफ़ॉक्स, जो कुछ ब्राउज़र आप उपयोग करना चाहते हैं, 630 00:44:27,090 --> 00:44:32,570 और यह अपने माउस शायद पटरियों आप में टाइप जो कुछ भी आंदोलन, 631 00:44:32,570 --> 00:44:35,170 और यह बस की तरह इस प्रक्रिया को स्वचालित। 632 00:44:35,170 --> 00:44:42,070 तो यह एक तरह के रूप में विकसित किया गया वेबसाइट स्वचालन परीक्षण उपकरण। 633 00:44:42,070 --> 00:44:45,910 लेकिन बहुत से लोगों का उपयोग वेबसाइटों परिमार्जन करने के लिए सेलेनियम 634 00:44:45,910 --> 00:44:49,990 वे अन्यथा एक है कठिनाई का बहुत scraping 635 00:44:49,990 --> 00:44:53,700 इन अन्य, तेजी से उपकरणों में से कुछ के साथ। 636 00:44:53,700 --> 00:44:57,530 >> तो यह है कि मैं वेब scraping के लिए मिल गया है। 637 00:44:57,530 --> 00:44:58,090 मज़े करो। 638 00:44:58,090 --> 00:45:01,762 639 00:45:01,762 --> 00:45:02,680 >> दर्शकों: प्रश्न। 640 00:45:02,680 --> 00:45:04,016 >> रॉबर्ट KRABEK: हाँ। 641 00:45:04,016 --> 00:45:12,840 >> दर्शकों: हैश करने के लिए एक तंत्र है वेबसाइट इतनी है कि आप मूल रूप से कर सकता है 642 00:45:12,840 --> 00:45:14,207 पर बाद में यह माध्यम से जाना। 643 00:45:14,207 --> 00:45:15,040 रॉबर्ट KRABEK: हाँ। 644 00:45:15,040 --> 00:45:21,530 तो हम में रखा, हमारे उदाहरण के लिए, उन दोनों के लिए, 645 00:45:21,530 --> 00:45:24,980 हम डॉक्टर में पूरी वेबसाइट डाल दिया। 646 00:45:24,980 --> 00:45:31,260 और तो आप वास्तव में सिर्फ ले सकता है चर डॉक्टर एक फाइल करने के लिए इसे लिखने और। 647 00:45:31,260 --> 00:45:35,490 मैं चाहता था तो, अगर मैं कर सकता एक HTML फ़ाइल के रूप में इसे बाहर लिखते हैं, 648 00:45:35,490 --> 00:45:39,280 और का उपयोग कर तो बजाय OpenURI और एक कर्ल अनुरोध, 649 00:45:39,280 --> 00:45:43,520 तो मैं सिर्फ डॉक्टर खोल सकता है एचटीएमएल और फिर उस के लिए खोज करते हैं। 650 00:45:43,520 --> 00:45:47,960 >> दर्शकों: लेकिन आप की रक्षा कर सकते हैं ऑनलाइन अनुभव की तरह 651 00:45:47,960 --> 00:45:48,930 आप ऑफ़लाइन करना है। 652 00:45:48,930 --> 00:45:51,013 उदाहरण के लिए। आप कब कई घंटे के लिए उड़ान, 653 00:45:51,013 --> 00:45:54,070 मैं मूल रूप से संग्रह करना चाहते हैं पूरी वेबसाइट। [अश्राव्य] 654 00:45:54,070 --> 00:45:58,780 >> रॉबर्ट KRABEK: हाँ, यह exactly-- है तो सचमुच क्या कर रहा है यह 655 00:45:58,780 --> 00:46:03,010 यह सब कुछ ले जा रहा है है कि इस URL पर होगा। 656 00:46:03,010 --> 00:46:11,280 हम कर्ल भागा तो, अगर यह बात है इस HTML के सभी लेने, 657 00:46:11,280 --> 00:46:14,590 और यह यह भंडारण है चर डॉक्टर के अंदर। 658 00:46:14,590 --> 00:46:17,290 तो फिर आप क्या कर सकते हैं जो कुछ भी आप डॉक्टर के साथ क्या करना चाहते हैं। 659 00:46:17,290 --> 00:46:18,575 आप एक फाइल करने के लिए उत्पादन में यह कर सकते हैं। 660 00:46:18,575 --> 00:46:19,950 दर्शकों: लेकिन यह जुड़ा हुआ नहीं है। 661 00:46:19,950 --> 00:46:20,780 यह गतिशील नहीं है। 662 00:46:20,780 --> 00:46:22,770 यह ठीक है, नहीं पुनरावर्ती है? 663 00:46:22,770 --> 00:46:24,016 तुम्हे समझ में आया मैंने जो कहा? 664 00:46:24,016 --> 00:46:28,359 मैं मूल रूप से एक तरह से एक हैश करने के लिए कोशिश कर रहा हूँ अपने हार्ड ड्राइव पर पूरी वेबसाइट 665 00:46:28,359 --> 00:46:31,150 इसलिए मैं मूल रूप से यह कर सकता है कि इंटरनेट के बिना कई घंटे के लिए। 666 00:46:31,150 --> 00:46:32,025 >> रॉबर्ट KRABEK: ठीक है। 667 00:46:32,025 --> 00:46:37,140 मैं had-- तो यदि ऐसा है तो, जहां मेरी फाइल आई / ओ है? 668 00:46:37,140 --> 00:46:47,766 इसलिए इस फाइल को मैं / हे है। तो बजाय कहना इस कारण, मैं इस craigslist.html कहते हैं। 669 00:46:47,766 --> 00:46:52,620 670 00:46:52,620 --> 00:46:53,940 मुझे लगता है कि ऊपर खुला था। 671 00:46:53,940 --> 00:46:59,020 मैं इस बारे में कहते हैं डॉक्टर था। 672 00:46:59,020 --> 00:47:00,470 मैं फाइल को बंद करें। 673 00:47:00,470 --> 00:47:05,410 और फिर सिर्फ इसलिए CS50 आईडीई कि, बादल पर जो भी है। 674 00:47:05,410 --> 00:47:07,710 मैं यहां जा सकते हैं। 675 00:47:07,710 --> 00:47:09,320 मैं फाइल को डाउनलोड कर सकते हैं। 676 00:47:09,320 --> 00:47:11,830 और फिर उस मेरे हार्ड ड्राइव पर होगा। 677 00:47:11,830 --> 00:47:13,930 तो आप इसे इस तरह से कर सकते हैं। 678 00:47:13,930 --> 00:47:18,830 आप घर पर हैं या, यदि का उपयोग नहीं CS50 आईडीई, उदात्त या कुछ और की तरह, 679 00:47:18,830 --> 00:47:21,900 इस वजह से, और भी आसान है इस स्थानीय स्तर पर सभी उपलब्ध है 680 00:47:21,900 --> 00:47:23,020 इंटरनेट से जुड़ा हुआ नहीं। 681 00:47:23,020 --> 00:47:24,720 >> दर्शकों: मैं देख रहा हूँ। 682 00:47:24,720 --> 00:47:26,580 यह एक विशेष समस्या के लिए है। 683 00:47:26,580 --> 00:47:30,410 इतना है कि आप बारी बारी से यह कर सकते हैं आप कई परतों गहरी तरह बात की जाना है? 684 00:47:30,410 --> 00:47:33,801 >> रॉबर्ट KRABEK: मैं फ़ोल्डरों डाउनलोड कर सकते हैं अगर है कि के रूप में अच्छी तरह से, आप क्या कह रहे हैं। 685 00:47:33,801 --> 00:47:34,426 दर्शकों: हाँ। 686 00:47:34,426 --> 00:47:39,890 687 00:47:39,890 --> 00:47:41,440 >> रॉबर्ट KRABEK: कूल। 688 00:47:41,440 --> 00:47:43,182