1 00:00:00,000 --> 00:00:03,234 >> [Muzika] 2 00:00:03,234 --> 00:00:05,275 3 00:00:05,275 --> 00:00:06,400 ROBERT KRABEK: Përshëndetje, djema. 4 00:00:06,400 --> 00:00:09,980 Emri im është Robert Krabek, dhe Unë do të jetë mësim ju djema 5 00:00:09,980 --> 00:00:15,470 si për hall web me Nokogiri, e cila është një bibliotekë Ruby, 6 00:00:15,470 --> 00:00:17,566 dhe Kimono, e cila është një zgjerim Chrome. 7 00:00:17,566 --> 00:00:20,940 8 00:00:20,940 --> 00:00:25,010 >> Pra, së pari ka një disa gjëra që ju 9 00:00:25,010 --> 00:00:28,790 mund të bëni në qoftë se ndoshta ju keni qenë duke bërë të gjitha psets deri tani 10 00:00:28,790 --> 00:00:31,170 dhe Workspace juaj është duke marrë një pak të plotë. 11 00:00:31,170 --> 00:00:37,060 Ne fakt mund të shkoni vetëm dhe të krijuar një hapësirë ​​pune të re për ju 12 00:00:37,060 --> 00:00:41,220 të vetëm të bëjë një projekt krejt të re në. 13 00:00:41,220 --> 00:00:46,160 Pra, nëse ju doni të vazhdojë që punojnë në ID template CS50 14 00:00:46,160 --> 00:00:49,080 se ju keni aktualisht, të ndjehen të lirë, dhe ju mund të vetëm 15 00:00:49,080 --> 00:00:54,700 instaluar Nokogiri me CFLAGS perlë equals-- instaluar nokogiri. 16 00:00:54,700 --> 00:00:56,930 Por përndryshe unë do t'ju tregoj si për të vendosur një të ri një dorë. 17 00:00:56,930 --> 00:01:01,210 Dhe pastaj kjo është në thelb duke rënë më shumë rrota trajnimit. 18 00:01:01,210 --> 00:01:07,120 Dhe ju jeni coding sikur keni qenë vetëm kodim në Sublime ose diçka. 19 00:01:07,120 --> 00:01:12,365 Pra, nëse ne ndryshim atë përsipër. 20 00:01:12,365 --> 00:01:14,930 21 00:01:14,930 --> 00:01:18,690 >> Pra, thonë se kjo është aktuale CS 50 ID tuaj. 22 00:01:18,690 --> 00:01:21,490 Ju thjesht mund të shkoni në Cloud9 këtu. 23 00:01:21,490 --> 00:01:22,725 Ju mund të shkoni në panelit të kontrollit tuaj. 24 00:01:22,725 --> 00:01:26,720 25 00:01:26,720 --> 00:01:29,950 Ajo duhet të sjellë deri hapësirave të punës tab. 26 00:01:29,950 --> 00:01:32,980 Dhe atëherë ju vetëm mund të klikoni këtu, Krijo një Workspace Ri. 27 00:01:32,980 --> 00:01:37,600 Emri hapësira e punës tuaj të re, ndoshta testi, apo scraping. 28 00:01:37,600 --> 00:01:42,700 Dhe pastaj klikoni këtë skedë me porosi këtu, në vend të CS50 templates tab. 29 00:01:42,700 --> 00:01:45,155 Dhe pastaj ju mund të shkoni vetëm dhe për të krijuar një hapësirë ​​pune të re. 30 00:01:45,155 --> 00:01:48,280 >> Unë kam krijuar tashmë një workspace këtu. 31 00:01:48,280 --> 00:01:50,640 Pra, ne do të punojmë me këtë. 32 00:01:50,640 --> 00:01:55,380 Dhe në qoftë se keni krijuar një të ri workspace kështu me tab Custom, 33 00:01:55,380 --> 00:02:04,560 ju thjesht mund të shtypni perlë të instaluar nokogiri, e cila nuk është duke shkuar këtu. 34 00:02:04,560 --> 00:02:06,230 OK, kjo është pak e ngrirë. 35 00:02:06,230 --> 00:02:08,979 Por ju mund të shtypni perlë të instaloni nokogiri. 36 00:02:08,979 --> 00:02:15,970 Dhe kjo duhet të jetë mbi të gjitha që ka të instalimit. 37 00:02:15,970 --> 00:02:20,590 >> Siç kam thënë më parë, në qoftë se ju jeni ende duke punuar në template tuaj CS50 ID, 38 00:02:20,590 --> 00:02:30,270 ju vetëm duhet të shkruani CFLAGS është e barabartë me perlë instaluar nokogiri. 39 00:02:30,270 --> 00:02:33,130 Dhe unë e kam instaluar tashmë ajo këtu kështu që unë nuk do ta bëjë këtë. 40 00:02:33,130 --> 00:02:38,500 Por, për ata që ndjekin së bashku, të ndjehen të lirë për ta bërë këtë. 41 00:02:38,500 --> 00:02:46,000 >> Pra, një herë ju keni marrë Nokogiri tuaj Workspace ose bibliotekë instaluar, 42 00:02:46,000 --> 00:02:49,500 Unë do të ju jap pak e një kurs përplasje në Ruby sintaksë 43 00:02:49,500 --> 00:02:53,380 sepse Nokogiri është një bibliotekë Ruby. 44 00:02:53,380 --> 00:03:03,710 Pra, ju do të duhet të dini disa themelore Ruby sintaksë për të punuar me Nokogiri. 45 00:03:03,710 --> 00:03:08,750 Kështu që disa dallime themelore nga ajo që ju jeni duke përdorur për të 46 00:03:08,750 --> 00:03:13,370 ndoshta në qoftë se ju keni qenë duke punuar deri më tani në vetëm C dhe PHP, 47 00:03:13,370 --> 00:03:16,010 ju të deklarojë variablave pa lloji. 48 00:03:16,010 --> 00:03:19,720 Ju nuk e përdorni pikpresje, që është lloj i një lehtësim. 49 00:03:19,720 --> 00:03:25,480 Nuk ka kllapa tani rreth për ose ndërsa unazore, për shembull. 50 00:03:25,480 --> 00:03:29,460 Ju vetëm duhet një bllok të kodit, dhe pastaj të vendosni të përfundojë në fund të kësaj. 51 00:03:29,460 --> 00:03:32,380 Nuk ka plus plus ose minus minus, kështu që vetëm 52 00:03:32,380 --> 00:03:36,180 e di se kur për ju jeni duke bërë për sythe, 53 00:03:36,180 --> 00:03:38,620 vetëm të barabartë plus dhe minus barabartë. 54 00:03:38,620 --> 00:03:43,310 Dhe në vend të hash përfshijnë, ju do të përdorni nevojë dhe pastaj 55 00:03:43,310 --> 00:03:47,755 çfarëdo bibliotekë duke u përpjekur të ngarkesës në programin tuaj. 56 00:03:47,755 --> 00:03:51,610 57 00:03:51,610 --> 00:03:53,430 >> Ruby nuk është një gjuhë hartuar. 58 00:03:53,430 --> 00:03:55,550 Pra, kjo është një tjetër lehtësim. 59 00:03:55,550 --> 00:03:59,350 Është shumë e ngjashme me PHP ku është një gjuhë interpretuar. 60 00:03:59,350 --> 00:04:03,570 Ju mund të drejtuar ndonjë script Ruby që ju shkruani me Ruby ndjekur 61 00:04:03,570 --> 00:04:07,380 me emrin e shkrimit tuaj ose programit. 62 00:04:07,380 --> 00:04:13,000 Për të ditur se kjo është një program Ruby, ju vetëm të përfundojë atë me .rb vend të .C. 63 00:04:13,000 --> 00:04:17,440 Dhe nuk janë të ndryshueshme Vargjeve mesme në Ruby, 64 00:04:17,440 --> 00:04:23,200 e cila është super i përshtatshëm kur ju jeni scraping dhe ndoshta duan të append 65 00:04:23,200 --> 00:04:26,090 të dhënat që ju keni rrëzuar në një rrjet. 66 00:04:26,090 --> 00:04:31,960 Ju nuk keni për të malloc një rrjet të ri dhe kopjoni array vjetër në rrjet të ri. 67 00:04:31,960 --> 00:04:36,150 Ju mund të append vetëm me dy shenjat shigjetë. 68 00:04:36,150 --> 00:04:39,820 Dhe nuk ka chars, atje vetëm vargjet vetme letër. 69 00:04:39,820 --> 00:04:44,760 Kështu që duhet të jetë pak më e lehtë. 70 00:04:44,760 --> 00:04:50,130 >> Pra, ne vetëm do të ju jap disa shembuj të disa bazë sintaksë Ruby. 71 00:04:50,130 --> 00:04:57,100 Kështu që këtu ju mund të shihni se në vend të plagë plagë, për të komentuar në Ruby, 72 00:04:57,100 --> 00:04:58,740 ju vetëm përdorni shenjën paund. 73 00:04:58,740 --> 00:05:04,990 Dhe deklarata ndryshueshme, ju vetëm lloji të barabartëve ndryshueshme 74 00:05:04,990 --> 00:05:07,971 çdo gjë që ju dëshironi ndryshueshme të jetë. 75 00:05:07,971 --> 00:05:09,220 Ata mund të jenë vargjet. 76 00:05:09,220 --> 00:05:14,120 Ju mund të keni rrjet, i cili ju populloj me vlera. 77 00:05:14,120 --> 00:05:17,240 vë dhe printime janë të ngjashme. 78 00:05:17,240 --> 00:05:20,110 Për qëllimet tona, Dallimi i vetëm është me të vërtetë 79 00:05:20,110 --> 00:05:25,500 që i vë, i cili qëndron për vë, vetëm vë një linjë të re 80 00:05:25,500 --> 00:05:27,440 karakter në çdo gjë që ju jeni shtypjen. 81 00:05:27,440 --> 00:05:30,980 >> Pra, nëse ne japim një të vogël demonstrim këtu, 82 00:05:30,980 --> 00:05:41,800 ne mund të kandidojë këtë with-- të hapur një terminal të ri. 83 00:05:41,800 --> 00:05:46,020 Ju mund të shihni të gjitha këto fotografi të cilat janë në terminalin e mia. 84 00:05:46,020 --> 00:05:50,960 Dhe në qoftë se unë vetëm të drejtuar Ruby, intro.rb rubin, atë 85 00:05:50,960 --> 00:05:53,530 vë nga pesë Përshëndetje Mather, Quincy, Carrier. 86 00:05:53,530 --> 00:05:54,410 Adams. 87 00:05:54,410 --> 00:05:59,295 Pra, kjo është e gjitha nuk është të vargjeve deklarojnë. 88 00:05:59,295 --> 00:06:01,670 Audienca: Robert, mund të bëni font tuaj pak më e madhe? 89 00:06:01,670 --> 00:06:02,461 ROBERT KRABEK: Po. 90 00:06:02,461 --> 00:06:05,370 91 00:06:05,370 --> 00:06:12,280 Dhe unë mund të zoom në, sepse ju nuk mund të zoom në për të fonts terminal me sa duket. 92 00:06:12,280 --> 00:06:18,790 93 00:06:18,790 --> 00:06:24,630 >> Pra, kjo është se si ju të shtypura Variablat në terminalin tuaj. 94 00:06:24,630 --> 00:06:28,820 Ju gjithashtu mund të përdorni variabla brenda një varg. 95 00:06:28,820 --> 00:06:33,720 Pra, kohët e fundit në PHP, ju mund të keni mësuar 96 00:06:33,720 --> 00:06:37,340 se ka string interpolation. 97 00:06:37,340 --> 00:06:43,830 Pra, nëse ju merrni një vështrim këtu, në qoftë se unë deklaroj tre variablave, emrin, bibliotekë, 98 00:06:43,830 --> 00:06:49,700 dhe gjuhës, dhe unë vë, unë shkruaj një varg, Hello emri im është. 99 00:06:49,700 --> 00:06:54,190 Dhe pastaj në vend të PHP version i string interpolation 100 00:06:54,190 --> 00:06:58,960 e cila duket pak më shumë si kjo, ju keni një shenjë kile, dhe pastaj 101 00:06:58,960 --> 00:07:01,220 një mbajtëse kaçurrel, dhe pastaj emri i variablit. 102 00:07:01,220 --> 00:07:07,350 Dhe kjo është se si ju do të shtypura, të themi, çfarëdo emri ndryshueshme është. 103 00:07:07,350 --> 00:07:10,140 >> Dhe pastaj ju gjithashtu mund të lidh vargje. 104 00:07:10,140 --> 00:07:12,890 Ruby bën atë super të lehtë me shenjë plus. 105 00:07:12,890 --> 00:07:16,110 Ju thjesht duhet një varg në të majtë plus një variable 106 00:07:16,110 --> 00:07:18,860 ose në një tjetër varg plus një varg. 107 00:07:18,860 --> 00:07:23,500 Pra, nëse unë të shtypura këtë jashtë, ajo duhet vetëm thonë Hello, Emri im është Robert. 108 00:07:23,500 --> 00:07:27,340 Unë do të jetë mësim se nokogiri në Ruby. 109 00:07:27,340 --> 00:07:35,370 >> Dhe le të vetëm të konfirmojnë se që është me të vërtetë intro case-- rubin. 110 00:07:35,370 --> 00:07:36,480 Përshëndetje, emri im është Robert. 111 00:07:36,480 --> 00:07:40,160 Unë do të jetë mësim se nokogiri në Ruby. 112 00:07:40,160 --> 00:07:45,600 >> Moving on, nëse deklaratat e të tjerët, kjo është pak më ndryshe 113 00:07:45,600 --> 00:07:49,800 nga ajo që ju mund të përdoret për të në qoftë se ju keni qenë duke punuar në C. 114 00:07:49,800 --> 00:07:53,200 Ju nuk keni nevojë të kllapa. 115 00:07:53,200 --> 00:07:55,220 Ju nuk keni nevojë për formatimin e teksteve kaçurrel. 116 00:07:55,220 --> 00:08:00,170 Dhe në vend të tjetër nëse, kjo është një elsif concatenated. 117 00:08:00,170 --> 00:08:07,260 Kështu që këtu, në qoftë se unë kam deklaruar x up këtu, si ne mund të shohim, x është ende 5. 118 00:08:07,260 --> 00:08:11,100 Pra, nëse x është më pak se 3, ajo do të vënë të vogla. 119 00:08:11,100 --> 00:08:14,030 Në qoftë se kjo është më pak se 7, të mesme, të mëdha tjetër. 120 00:08:14,030 --> 00:08:17,340 Kështu 5 është një numër medium. 121 00:08:17,340 --> 00:08:22,270 Dhe unë të përfundojë këtë bllok i kodit me fund. 122 00:08:22,270 --> 00:08:24,920 >> Këtu është e mia për lak. 123 00:08:24,920 --> 00:08:28,240 Dhe kjo është edhe Sintaksa pak më të ndryshme. 124 00:08:28,240 --> 00:08:33,500 Në 0 për pesë vetëm në thelb është deklaruar një vargjeve nga 0 deri në 5. 125 00:08:33,500 --> 00:08:36,120 Pra, ka pesë lojëra elektronike në rrjet. 126 00:08:36,120 --> 00:08:40,500 Dhe pastaj për çdo slot në se grup, unë do të jem bën rritjen i. 127 00:08:40,500 --> 00:08:46,080 Kështu që kjo të printuar 0 deri në 5, ose 0 deri ne 4. 128 00:08:46,080 --> 00:08:49,630 Dhe kjo duhet të shtypura medium. 129 00:08:49,630 --> 00:08:51,370 >> Dhe unë vetëm do të flakët nëpër. 130 00:08:51,370 --> 00:08:54,466 Ju djema do të kenë qasje të këtij kodi më vonë. 131 00:08:54,466 --> 00:08:55,965 Kështu që ju djema mund të drejtuar këtë veten. 132 00:08:55,965 --> 00:09:02,090 133 00:09:02,090 --> 00:09:06,620 >> Pra, kjo është bazë lak juaj ndërsa. 134 00:09:06,620 --> 00:09:12,230 Kjo do të jetë vetëm j shtypjen, bën rritjen nga 1 deri ne goditi 5. 135 00:09:12,230 --> 00:09:18,320 >> Super shpejtë kurs përplasje Ruby se si të shkruajnë një funksion. 136 00:09:18,320 --> 00:09:24,460 Në vend të, të themi, int faktoriale numrin, ne vetëm duhet def. 137 00:09:24,460 --> 00:09:28,450 Dhe në thelb ju jeni përcaktimin e një funksion këtu. 138 00:09:28,450 --> 00:09:30,600 Kjo do të jetë emri i funksionit, 139 00:09:30,600 --> 00:09:34,280 dhe kjo është ndonjë variablave që ju duan të kalojnë në funksion. 140 00:09:34,280 --> 00:09:36,760 Ju mund të keni nëse deklaratat brenda. 141 00:09:36,760 --> 00:09:38,030 Ju mund të kthehen. 142 00:09:38,030 --> 00:09:42,620 Në këtë rast, ne jemi përcaktimin e një Recursively 143 00:09:42,620 --> 00:09:45,000 implementuar funksionin faktorial. 144 00:09:45,000 --> 00:09:48,660 Pra, ne vetëm thirrje funksionet në Ruby si kjo. 145 00:09:48,660 --> 00:09:54,700 >> Pra, nëse unë kam përcaktuar këtë, unë mund të telefononi faktorial, të kalojë në 3, 146 00:09:54,700 --> 00:09:59,700 dhe pastaj 3 do të jetë numri i ndryshueshëm që unë mund të përdorni brenda funksionit. 147 00:09:59,700 --> 00:10:08,010 Dhe kjo to_s është vetëm duke e kthyer vlera e faktorial kthyer në një varg. 148 00:10:08,010 --> 00:10:10,760 Përndryshe kjo do të hedhin një gabim duke thënë oh, unë 149 00:10:10,760 --> 00:10:13,230 nuk mund të shtypura një string-- sepse siç ju kujtohet, 150 00:10:13,230 --> 00:10:18,230 vë është vënë string-- sepse kjo faktorial ka kthyer një numër. 151 00:10:18,230 --> 00:10:21,850 Pra, ne mund të konvertohet se në një varg si të tillë. 152 00:10:21,850 --> 00:10:27,856 Dhe anasjelltas, ju gjithashtu mund të konvertohet një varg të një numër të plotë me to_i. 153 00:10:27,856 --> 00:10:32,650 >> Pra, duke e bërë çdo gjë super e thjeshtë, në qoftë se unë vetëm komentoj këtë gjë, për të shpëtuar 154 00:10:32,650 --> 00:10:36,250 dhe drejtuar funksionin faktorial. 155 00:10:36,250 --> 00:10:39,850 Ne duhet të jetë në gjendje për të parë që faktorial nga 3 është 6. 156 00:10:39,850 --> 00:10:42,790 Dhe kjo është me të vërtetë e vërtetë. 157 00:10:42,790 --> 00:10:46,160 >> Pra, kjo është kursi juaj përplasje në Ruby. 158 00:10:46,160 --> 00:10:53,550 Dhe tani që ju e dini Ruby, ne mund të shkojnë në në Nokogiri bazë scraping ngritur. 159 00:10:53,550 --> 00:10:58,190 Në thelb të gjithë ju duhet të bëni është, në Ruby, kërkojnë bibliotekat. 160 00:10:58,190 --> 00:11:04,390 Dhe për qëllimet tona ne do të jetë duke përdorur Biblioteka OpenURI si dhe Nokogiri. 161 00:11:04,390 --> 00:11:07,870 Dhe pastaj çfarë ju do-- dhe ajo do të ju jap sintaksë për this-- 162 00:11:07,870 --> 00:11:16,010 është që ju hapni URL shumë si ju do në një kërkesë curl, i cili qëndron për C URL. 163 00:11:16,010 --> 00:11:20,330 >> Pra, ju merrni URL e në faqen e internetit në fjalë. 164 00:11:20,330 --> 00:11:22,030 Ju ruani atë në një variabël. 165 00:11:22,030 --> 00:11:27,400 Dhe pastaj ju mund të kërkoni përmes se variabël për unike HTML tags përdorur 166 00:11:27,400 --> 00:11:30,590 komanda .css. 167 00:11:30,590 --> 00:11:34,360 Dhe pastaj ju mund të prodhimit përmbajtje për të kudo që ju dëshironi. 168 00:11:34,360 --> 00:11:35,720 Ju mund të filloni me një bazë të dhënash. 169 00:11:35,720 --> 00:11:42,040 Ju mund të prodhimit në një skedar, ose edhe vetëm të shtypura atë në ekran. 170 00:11:42,040 --> 00:11:47,290 >> Pra, ne do t'ju tregojë një kruese themelore. 171 00:11:47,290 --> 00:11:52,570 Kështu që këtu ju mund të shihni kemi kërkon nokogiri, kërkojnë hapur-uri. 172 00:11:52,570 --> 00:11:57,150 Vendosur Juaj themelore lart, le të e quajti atë dokument ose doc, 173 00:11:57,150 --> 00:12:07,780 barabartë Nokogiri :: HTML hapur, i cili është komandë dhënë për ne nga OpenURI 174 00:12:07,780 --> 00:12:08,920 bibliotekë. 175 00:12:08,920 --> 00:12:14,000 Dhe ne do të jetë në kërkim, për ata të ju që mund të jetojnë në kuadrat, 176 00:12:14,000 --> 00:12:21,270 për bikes që janë të listuara në Boston në seksionin biçikletë Boston Craigslist 177 00:12:21,270 --> 00:12:22,020 faqe. 178 00:12:22,020 --> 00:12:26,460 >> Pra, nëse ju jeni të panjohura me curl, unë vetëm do të 179 00:12:26,460 --> 00:12:28,930 ju tregojnë se vërtetë të shpejtë çfarë do të bëjë të rehatohem. 180 00:12:28,930 --> 00:12:38,350 Në qoftë se unë të kërkuar për të marrë të gjitha URL nga site Craigslist, nëse unë lloji curl, 181 00:12:38,350 --> 00:12:44,950 ajo vetëm mërzi të gjitha URL nga faqja Craigslist biçikletave 182 00:12:44,950 --> 00:12:46,720 mbi terminal time. 183 00:12:46,720 --> 00:12:49,130 Kjo nuk është veçanërisht e e dobishme, sepse unë nuk e bëj 184 00:12:49,130 --> 00:12:53,330 duan të shkojnë dorë nëpër dhe gjetur gjë e unë jam duke kërkuar për. 185 00:12:53,330 --> 00:13:01,590 Por vetëm kështu që ju mund të shihni se unë jam në të vërtetë 186 00:13:01,590 --> 00:13:13,966 duke përdorur kodin e duhur, në qoftë se ju shikoni në URL për Craigslist në bikes-- 187 00:13:13,966 --> 00:13:17,460 për disa arsye ajo nuk është gjetur. 188 00:13:17,460 --> 00:13:20,340 Nëse ju shikoni në këtë faqe dhe ju shikoni në URL, 189 00:13:20,340 --> 00:13:23,970 kjo duhet të jetë identike me Kërkesa Curl që unë thjesht dërgoni. 190 00:13:23,970 --> 00:13:27,700 Dhe me të vërtetë, kjo është ajo që është duke u ruhet në variablin doc. 191 00:13:27,700 --> 00:13:36,540 >> Pra, kur ju shkoni përsëri në kodin tonë, ne pastaj mund të veprojë në këtë variabël doc 192 00:13:36,540 --> 00:13:40,660 duke përdorur .css. 193 00:13:40,660 --> 00:13:49,240 Kështu që thonë se unë të kërkuar për të marrë të gjitha të tags që janë span.txt, 194 00:13:49,240 --> 00:13:51,740 dhe të gjitha një e tags brenda këtij tag. 195 00:13:51,740 --> 00:13:56,150 Dhe pse mund të duam të bëni këtë, unë dëgjoj ju qaj? 196 00:13:56,150 --> 00:14:02,920 >> Nëse ne Inspect Element, kjo ju jep një ndarje se si është strukturuar URL. 197 00:14:02,920 --> 00:14:06,200 Nëse unë lëvizni poshtë nëpër këtu, ju mund të shihni 198 00:14:06,200 --> 00:14:08,770 çfarë secili prej tyre të ndryshme Elementet përfaqëson. 199 00:14:08,770 --> 00:14:13,410 Kështu që ndoshta unë dua për të hyrë në ky element i veçantë. 200 00:14:13,410 --> 00:14:16,820 Kështu që unë jam duke përdorur zhvilluesi Chrome mjete për të Inspect Element. 201 00:14:16,820 --> 00:14:22,970 Unë mund të shoh këtu poshtë se kjo është një një tag brenda një hapësirë 202 00:14:22,970 --> 00:14:26,230 tag me një klasë të txt. 203 00:14:26,230 --> 00:14:29,610 >> Pra, kjo merr për tonë Operacioni i parë i cili 204 00:14:29,610 --> 00:14:37,330 është hapësirë ​​doc.css, që është tag që Unë jam duke kërkuar për brenda të gjithë këtë URL. 205 00:14:37,330 --> 00:14:43,650 Dhe pastaj .txt funksionon shumë si CSS bën kur ju jeni vetëm me shkrim CSS 206 00:14:43,650 --> 00:14:49,630 në tuaj fotografi HTML nga specifikuar një klasë. 207 00:14:49,630 --> 00:14:57,980 Pra, ky operator i veçantë do të specifikoni një tag span me klasën e txt. 208 00:14:57,980 --> 00:15:02,800 Dhe pastaj, nëse kam lënë një hapësirë, Kjo pastaj do të shkojë brenda këtij tag 209 00:15:02,800 --> 00:15:05,170 dhe pastaj të gjeni një një tag brenda se. 210 00:15:05,170 --> 00:15:10,750 >> Pra, nëse unë vetëm vënë këtë në terminali, unë duhet 211 00:15:10,750 --> 00:15:21,630 të jetë në gjendje për të parë në thelb gjithçka që është në këtë hapësirë ​​të klasës txt. 212 00:15:21,630 --> 00:15:22,890 Pra, ne do të japim se një lëvizje. 213 00:15:22,890 --> 00:15:25,870 214 00:15:25,870 --> 00:15:27,756 rubin Craigslist-kruese. 215 00:15:27,756 --> 00:15:31,850 216 00:15:31,850 --> 00:15:37,250 Dhe me të vërtetë që na jep të gjitha këto tags e listings të ndryshme që 217 00:15:37,250 --> 00:15:40,400 jeni në faqen Craigslist. 218 00:15:40,400 --> 00:15:45,670 >> Pra, nëse ne kthehemi, ne mund të kthehet këtë në diçka pak më e dobishme. 219 00:15:45,670 --> 00:15:51,050 Ndoshta ne duam vetëm lidhjet. 220 00:15:51,050 --> 00:15:58,790 Sepse brenda këtij tag, unë gjithashtu do të kanë hyperlink të rrugës 221 00:15:58,790 --> 00:16:00,590 se kjo faqe shkon në. 222 00:16:00,590 --> 00:16:09,100 Pra, nëse ju shikoni në këtë kod këtu, ajo që unë do të bëj është në vend të .css, 223 00:16:09,100 --> 00:16:12,380 Unë mund të shkoj at_css. 224 00:16:12,380 --> 00:16:16,820 Dhe kjo vetëm do të merrni e parë element i të gjitha ato gjëra. 225 00:16:16,820 --> 00:16:20,890 Pra, nëse unë do të bëj që deri në Kodi Unë vetëm demonstruar më parë, 226 00:16:20,890 --> 00:16:23,800 në vend të kthimit të gjithë të kësaj, ajo do të vetëm 227 00:16:23,800 --> 00:16:26,850 kthejë një të parë nga ata. 228 00:16:26,850 --> 00:16:31,310 Pra, kjo është se si funksionon operatori at_css. 229 00:16:31,310 --> 00:16:39,460 >> Pra, ne duam të ruajtur rruga të gjithë të parë një tag. 230 00:16:39,460 --> 00:16:47,430 Dhe për shkak se një do të na japë a-- kështu që ne jemi ende duke shkuar për të përdorur .css. 231 00:16:47,430 --> 00:16:53,830 Por për shkak se kjo do të japë na mbrapa një grup të tërë të tags, 232 00:16:53,830 --> 00:16:55,710 ne jemi duke shkuar për qasje elementi i parë. 233 00:16:55,710 --> 00:17:01,700 Pra, kjo është një tjetër mënyrë që ju mund të hyni në ndonjë element të veçantë në qoftë se ju 234 00:17:01,700 --> 00:17:04,810 kanë një rrjet të elementeve që është kthyer, 235 00:17:04,810 --> 00:17:11,930 sepse ju mund të trajtoni çdo gjë që kthimet .css si një grup, në thelb. 236 00:17:11,930 --> 00:17:16,880 Dhe pastaj ne jemi duke shkuar për të hyrë në atribut HyperText referencë për këtë. 237 00:17:16,880 --> 00:17:24,810 >> Pra, nëse ju merrni një vështrim, qoftë ju dukej me të vërtetë afër këtu, 238 00:17:24,810 --> 00:17:28,270 Nëse ju vetëm në thelb shikoni në URL bar, 239 00:17:28,270 --> 00:17:33,880 kjo është rruga që ju jeni do të jetë scraping. 240 00:17:33,880 --> 00:17:41,565 Pra, nëse ne vetëm të drejtuar këtë përsëri, dhe sigurohuni që ne kemi ruajtur atë. 241 00:17:41,565 --> 00:17:47,040 242 00:17:47,040 --> 00:17:48,300 Ju mund të kontrolloni në shtëpi. 243 00:17:48,300 --> 00:17:51,430 Kjo në fakt përputhet me këtë lidhje. 244 00:17:51,430 --> 00:17:55,950 >> Pra, pse mund të duam ta përdorim këtë? 245 00:17:55,950 --> 00:17:57,870 Nëse ju doni të hall faqja dhe ajo ka 246 00:17:57,870 --> 00:18:00,270 një faqe e lidhjeve si Craigslist bën, ju 247 00:18:00,270 --> 00:18:03,210 mund të dëshironi të shkoni, atëherë në secilën prej këtyre lidhjeve 248 00:18:03,210 --> 00:18:05,120 dhe pastaj hall përmbajtja e kësaj, që 249 00:18:05,120 --> 00:18:08,520 është pikërisht ajo që ne jemi duke shkuar për të bërë. 250 00:18:08,520 --> 00:18:11,660 >> Pra, një herë ju keni rrugë si një ndryshueshme, unë nuk të vërtetë 251 00:18:11,660 --> 00:18:13,200 kujdesen për shtypjen it out. 252 00:18:13,200 --> 00:18:15,420 Unë vetëm nevojë për të ruajtur atë si një ndryshore. 253 00:18:15,420 --> 00:18:20,980 Dhe pastaj unë mund të hyni në një tjetër faqe në të njëjtën mënyrë hyj 254 00:18:20,980 --> 00:18:22,260 doc në vendin e parë. 255 00:18:22,260 --> 00:18:25,920 Përveç me URL, ne jemi duke shkuar të përdorin varg interpolation 256 00:18:25,920 --> 00:18:29,180 si unë u përshkruar në Ruby herët për të append 257 00:18:29,180 --> 00:18:32,010 rruga për në fund të rrënjë. 258 00:18:32,010 --> 00:18:38,970 >> Pra, çfarë kjo do të bëjë është kjo do të vihet në rrugën e 259 00:18:38,970 --> 00:18:42,360 që unë scraped parë dhe pastaj të kthehet se 260 00:18:42,360 --> 00:18:49,580 në një artikull të ri, çdo gjë që ju dëshironi të quajnë it-- first_listing, për shembull. 261 00:18:49,580 --> 00:18:52,900 Por unë jam duke shkuar për të lënë ajo në pikën për tani, 262 00:18:52,900 --> 00:18:55,420 sepse kjo është ajo që unë jam duke përdorur këtu. 263 00:18:55,420 --> 00:19:02,900 >> Kështu që thonë se unë të kërkuar për të marrë përshkrimin e shpalljes së parë në Craigslist. 264 00:19:02,900 --> 00:19:04,740 Kështu që unë do të shkoj këtu poshtë. 265 00:19:04,740 --> 00:19:10,660 Unë do të klikoni mbi Inspect Element përsëri, sepse ky është përshkrimi. 266 00:19:10,660 --> 00:19:14,350 Unë do të shkoj poshtë këtu dhe të shohim në qoftë se unë mund të gjeni se si unë mund të 267 00:19:14,350 --> 00:19:16,530 të jetë në gjendje për të kërkuar për këtë tag të veçantë. 268 00:19:16,530 --> 00:19:19,530 Dhe në këtë rast, ajo ka një ID, e cila na çon 269 00:19:19,530 --> 00:19:26,810 në rrugën tonë të ardhshëm të kërkim etiketa, e cila është me një hashtag. 270 00:19:26,810 --> 00:19:30,670 >> Pra për klasat, ju mund të përdorin dot operatorin. 271 00:19:30,670 --> 00:19:38,610 Pra, .txt është specifikuar një klasë të txt, ndërsa hash specifikon një ID. 272 00:19:38,610 --> 00:19:43,720 Pra, në këtë rast, është tag seksioni, dhe ID është postingbody. 273 00:19:43,720 --> 00:19:47,780 >> Pra, kjo shkon dhe gjen first-- sepse ne jemi 274 00:19:47,780 --> 00:19:51,200 duke përdorur at_css-- kjo shkon dhe gjen elementin e parë që 275 00:19:51,200 --> 00:19:57,180 vjen me tag e seksionit dhe ID e postingbody. 276 00:19:57,180 --> 00:20:02,636 Dhe pastaj ju mund të hyni në elementin tekst i atij sendit kthye me .text. 277 00:20:02,636 --> 00:20:06,230 Dhe pastaj ne mund të ruajë që në përshkrim. 278 00:20:06,230 --> 00:20:09,370 >> Pra, tani që ne kemi një përshkrim ndryshueshme, 279 00:20:09,370 --> 00:20:14,850 ne mund të jetë në gjendje të bëjë, të themi, paraqesë I / O. Pra, të paraqesë I / O në Ruby 280 00:20:14,850 --> 00:20:21,310 është shumë e ngjashme për të paraqesë I / O në C ku kemi hapur një skedë. 281 00:20:21,310 --> 00:20:23,260 Ne mund të shkruaj për të. 282 00:20:23,260 --> 00:20:25,060 Dhe pastaj ne do të mbyllë këtë dosje. 283 00:20:25,060 --> 00:20:29,660 >> Kështu që këtu, ne jemi vetëm emërtimin fotografi, disa ndryshore arbitrare. 284 00:20:29,660 --> 00:20:33,120 Ne gjithashtu mund të vetëm e kanë vënë këtë këtu. 285 00:20:33,120 --> 00:20:39,630 Ne kemi një ndryshore që ne jemi ruajtjen dosja e hapur si me File.open. 286 00:20:39,630 --> 00:20:46,370 Dhe ne jemi me shkrim për këtë fotografi, kështu që ne të hapur atë me operatorin w. 287 00:20:46,370 --> 00:20:54,280 Dhe pastaj ne kemi vënë string në të të paraqesë me operatorin .puts. 288 00:20:54,280 --> 00:20:58,310 Dhe pastaj ne kemi vënë ndryshore që ne dua të shkruaj në dosjen brenda atij. 289 00:20:58,310 --> 00:21:00,200 Dhe pastaj ne vetëm të mbyllë dosjen. 290 00:21:00,200 --> 00:21:04,000 >> Pra, nëse ne do të shkojmë përpara dhe të drejtuar këtë, kjo duhet të prodhojë një dokument 291 00:21:04,000 --> 00:21:10,840 me të cilin do të description.txt kanë këtë përshkrim brenda saj. 292 00:21:10,840 --> 00:21:14,015 Pra, nëse unë të drejtuar it-- nr. 293 00:21:14,015 --> 00:21:17,520 294 00:21:17,520 --> 00:21:23,330 Është prodhuar një file teksti me, me shpresë, e njëjta gjë. 295 00:21:23,330 --> 00:21:25,850 296 00:21:25,850 --> 00:21:33,290 Kështu që nuk mund të ketë qenë një postimi të ri që është dalë, ndërsa unë kam qenë duke folur. 297 00:21:33,290 --> 00:21:36,580 Dhe me të vërtetë duket sikur ka pasur. 298 00:21:36,580 --> 00:21:43,380 Pra, nëse ne do të shkojmë në këtë biçikletë klasik, 1962 deri 1966, që duket që të shkojë. 299 00:21:43,380 --> 00:21:45,620 Dhe ju shkoni atje. 300 00:21:45,620 --> 00:21:51,250 >> Pra, kjo është më themelore funksionalitetin e scraping. 301 00:21:51,250 --> 00:21:57,510 Ne mund të ketë në vend të vetëm me shkrim tek kjo skedë: 302 00:21:57,510 --> 00:21:59,930 ne mund të shtoni gjëra në një grup. 303 00:21:59,930 --> 00:22:03,770 Pra, nëse unë deklaroj tre vargjeve, titulli, çmimi, dhe përshkrim. 304 00:22:03,770 --> 00:22:06,310 305 00:22:06,310 --> 00:22:13,790 Dhe ne jemi që veprojnë në pika doc tani. 306 00:22:13,790 --> 00:22:16,940 Ne mund të shkoni nëpër dhe të gjeni të gjitha të span.txt. 307 00:22:16,940 --> 00:22:21,710 Dhe mbani mend, kjo kthen një koleksion të gjitha sendet që ai gjen. 308 00:22:21,710 --> 00:22:27,300 Dhe pastaj në Ruby, ju mund të përdorni vetëm Cdo të iterate nëpër çdo send 309 00:22:27,300 --> 00:22:28,410 e vektorit. 310 00:22:28,410 --> 00:22:31,330 Dhe pastaj për çdo artikull, Unë jam vetëm duke shkuar për të thirrur atë 311 00:22:31,330 --> 00:22:34,620 një lidhje, sepse kjo është në thelb atë që është. 312 00:22:34,620 --> 00:22:46,830 >> Pra, nëse unë të vënë çdo link.css dot a.hdrlnk, kjo është në të vërtetë do të link 313 00:22:46,830 --> 00:22:58,280 dhe gjetja brenda këtë link tjetër Element HTML dhe të klasës përkatëse. 314 00:22:58,280 --> 00:23:04,990 Pra, në qoftë se ne kujtojmë se çfarë kjo ishte, The span.txt, 315 00:23:04,990 --> 00:23:13,160 ju mund të see- më lejoni vetëm të shkojnë prapa quick-- e vërtetë brenda span.txt 316 00:23:13,160 --> 00:23:17,490 ne kemi një shumë të klasave të tjera. 317 00:23:17,490 --> 00:23:27,180 Pra brenda span.txt, ne jemi duke shikuar për një një tag me një hdrlnk klasës. 318 00:23:27,180 --> 00:23:29,890 Pra më lejoni të gjeni vetëm se për ju djema të vërtetë të shpejtë. 319 00:23:29,890 --> 00:23:37,390 320 00:23:37,390 --> 00:23:42,850 >> Kështu që ju mund të shihni këtu, kjo është një një tag kjo është brenda hapësirë ​​të klasës txt 321 00:23:42,850 --> 00:23:44,920 që ka hdrlnk klasës. 322 00:23:44,920 --> 00:23:47,610 Dhe kjo është me të vërtetë ajo që ne jemi duke u përpjekur për të marrë. 323 00:23:47,610 --> 00:23:54,680 >> Pra, ne jemi tani duke u përpjekur për të ruajtur të gjithë e këtyre lidhjeve brenda titull. 324 00:23:54,680 --> 00:23:59,545 Dhe pastaj ne jemi duke shkuar për të shtypur nga secili prej këtyre lidhjeve. 325 00:23:59,545 --> 00:24:00,360 Jo, më vjen keq. 326 00:24:00,360 --> 00:24:04,530 Ne jemi duke shkuar për të shkruar çmimi i secilit prej atyre. 327 00:24:04,530 --> 00:24:09,350 Pra, le të drejtuar këtë të vërtetë të shpejtë dhe të shohim se çfarë ajo bën. 328 00:24:09,350 --> 00:24:14,680 329 00:24:14,680 --> 00:24:17,720 >> Pra, kjo vetëm në thelb u me secilin nga lidhjet 330 00:24:17,720 --> 00:24:27,310 nga ana tjetër, arrihen tag në fjalë, dhe pastaj u tërhoq nga çmimi. 331 00:24:27,310 --> 00:24:33,910 Dhe ajo e bëri këtë sepse pas ju keni gjithçka në titull, 332 00:24:33,910 --> 00:24:37,260 ne kemi ruajtur vetëm titullin atje. 333 00:24:37,260 --> 00:24:40,180 Ne kemi ruajtur vetëm lidhjen brenda titullit array. 334 00:24:40,180 --> 00:24:47,720 Dhe në këtë operacion për loop, ku në vend që të shkojnë në a.hdrlnk, 335 00:24:47,720 --> 00:24:50,490 ne jemi duke kërkuar për një span.price. 336 00:24:50,490 --> 00:24:56,500 Pra, nëse unë mund vetëm të vërtetë të gjeni shpejt çmimi, në qoftë se ju inspektojë elementin, 337 00:24:56,500 --> 00:25:00,610 ju do të shihni se ajo është një hapësirë me klasën e çmimit. 338 00:25:00,610 --> 00:25:04,670 Dhe kjo është në thelb si ne jemi duke marrë çmimin atje. 339 00:25:04,670 --> 00:25:10,040 >> Pra, kjo është me të vërtetë Rasti themelore e scraping. 340 00:25:10,040 --> 00:25:13,550 Kjo është se si ju të merrni të gjithë elementet në një faqe 341 00:25:13,550 --> 00:25:16,510 se, të themi, ju tashmë e dini URL e. 342 00:25:16,510 --> 00:25:21,050 >> Pra, nëse ne duam që të merrni një pak më shumë në thellësi, 343 00:25:21,050 --> 00:25:23,950 ne mund hall faqet brenda faqeve. 344 00:25:23,950 --> 00:25:28,480 Dhe për këtë shembull, unë do të të jetë kompjuteri në një skedar CSV. 345 00:25:28,480 --> 00:25:39,510 Kështu që unë jam duke kërkuar CSV këtu sepse Ruby nuk ka, brenda vetes, 346 00:25:39,510 --> 00:25:42,350 kanë funksionalitet të prodhimit vetëm CSV fotografi. 347 00:25:42,350 --> 00:25:45,030 Pra, kjo është super e thjeshtë. 348 00:25:45,030 --> 00:25:48,710 Më lejoni thjesht shkoni për të ardhshëm. 349 00:25:48,710 --> 00:25:51,640 350 00:25:51,640 --> 00:25:57,170 Ne mbuluar skedar I / O. Pra kjo është e njëjtë me sa është në C. 351 00:25:57,170 --> 00:26:00,870 Dhe para se të lëvizin për Kimono, Unë vetëm do të ju tregojnë se si të vërtetë të shpejtë 352 00:26:00,870 --> 00:26:02,790 në hall faqet brenda pamjeve. 353 00:26:02,790 --> 00:26:10,040 >> Pra, ne tashmë e mësuar se si për të deklaruar vargjeve në Ruby. 354 00:26:10,040 --> 00:26:13,280 Kështu që unë jam vetëm duke deklaruar një bandë e vargjeve arbitrare 355 00:26:13,280 --> 00:26:16,310 që unë do të jetë ruajtjen e të dhënave brenda. 356 00:26:16,310 --> 00:26:20,680 doc operon në të njëjtën mënyrë ashtu siç bëri në dosjen e mëparshëm. 357 00:26:20,680 --> 00:26:23,580 Ne jemi duke shkuar në, duke gjetur secili prej span.txt-së. 358 00:26:23,580 --> 00:26:25,040 Ne tashmë e dimë se. 359 00:26:25,040 --> 00:26:32,130 Kjo është enë brenda së cilës çdo Lidhje ka të gjitha të dhënave që ne duam. 360 00:26:32,130 --> 00:26:40,800 >> Kështu që këtu ajo që ne po bëjmë është për çdo Lidhje e klasës hapësirë ​​txt, ne jemi duke shkuar në 361 00:26:40,800 --> 00:26:45,720 dhe ne jemi duke gjetur një tag, duke gjetur elementin e parë e asaj. 362 00:26:45,720 --> 00:26:49,937 Mos harroni, .css kthen një koleksion, kështu që ju nuk mund të përdorni atë siç është. 363 00:26:49,937 --> 00:26:51,520 Ne jemi duke shkuar për të gjetur elementin e parë. 364 00:26:51,520 --> 00:26:56,430 Edhe në qoftë se kjo është një grup i një artikull, ju duhet të përdorni këtë sintaksë, 365 00:26:56,430 --> 00:26:58,800 dhe pastaj të largohen nga atribut a href. 366 00:26:58,800 --> 00:27:01,800 >> Pra, ne e bëmë këtë më herët. 367 00:27:01,800 --> 00:27:04,440 Pra, kjo duhet të duket e njohur. 368 00:27:04,440 --> 00:27:14,330 Dhe kështu që tani kemi një rrjet quajtur rrugët e të gjithë të lidhjeve tona 369 00:27:14,330 --> 00:27:16,590 se ne do të dëshironi të përdorni. 370 00:27:16,590 --> 00:27:21,350 Pra, nëse kemi këtë grup të gjithë nga shtigjet që ne duam të përdorim, 371 00:27:21,350 --> 00:27:26,840 ne pastaj mund të krijojë një artikull për secilin e ato faqe kur ne hapim atë faqe. 372 00:27:26,840 --> 00:27:31,150 Pra, si ne gjithashtu pamë në Sintaksa më parë, ku 373 00:27:31,150 --> 00:27:37,450 duke bërë string interpolation me rrugën këtu, kështu që sintaksa është vetëm për rrugën. 374 00:27:37,450 --> 00:27:41,450 Dhe unë mund të emërojë këtë variabël ndonjë emër arbitrare. 375 00:27:41,450 --> 00:27:43,070 >> Kjo është e rëndësishme. 376 00:27:43,070 --> 00:27:46,650 Ky është grup që ju do të të jetë hyrë në çdo element. 377 00:27:46,650 --> 00:27:52,400 Por kur ju thonë se për rrugën në shtigjet, kjo do të thotë për çdo element në shtigjet, 378 00:27:52,400 --> 00:27:55,150 e quajti atë rrugë, dhe të përdorin atë. 379 00:27:55,150 --> 00:27:59,266 Kjo është në thelb si kur ju të bëjë një për lak dhe ti përdorni int i. 380 00:27:59,266 --> 00:28:04,000 Kështu që ju mund të trajtoni rrugën si më të variabël që është bën rritjen. 381 00:28:04,000 --> 00:28:07,820 >> Dhe pastaj për secilin nga ata, shkojnë në secilën prej këtyre lidhjeve. 382 00:28:07,820 --> 00:28:11,710 Sepse ne jemi ruajtjen atë në faqen pika, kështu që ne jemi duke krijuar një faqe të re çdo herë 383 00:28:11,710 --> 00:28:13,330 ne të hyrë në të. 384 00:28:13,330 --> 00:28:20,560 Dhe pastaj brenda asaj faqe të re, të gjejnë span.postingtitletext, span.price, 385 00:28:20,560 --> 00:28:22,240 dhe pastaj seksion # postingbody. 386 00:28:22,240 --> 00:28:28,430 Ne tashmë e mbuluar seksion # postingbody kur kemi shikuar në përshkrim. 387 00:28:28,430 --> 00:28:34,890 >> Pra, ne mund të shkojmë të shohim në postin Craigslist, në qoftë se ju jeni vetëm duke kërkuar në titull, 388 00:28:34,890 --> 00:28:38,810 ju mund të shihni atë këtu, postingtitletext hapësirë. 389 00:28:38,810 --> 00:28:41,390 Dhe kjo është arsyeja pse ajo është atje. 390 00:28:41,390 --> 00:28:49,120 Dhe pastaj për çmimin, ju mund të hyni në atë me klasën hapësirë ​​prej çmimit. 391 00:28:49,120 --> 00:28:54,480 >> Pra, ne edhe ndoshta fuqi dëshironi të ruani URL. 392 00:28:54,480 --> 00:28:58,580 Pra, ne do të kandidojë vetëm këtë përsëri, të ruajtur atë në një grup, 393 00:28:58,580 --> 00:29:01,150 sepse në qoftë se ju jeni në kërkim në Craigslist, ju jeni 394 00:29:01,150 --> 00:29:05,290 ndoshta do të duan një mënyrë për të, në qoftë se ju shihni diçka që ju interesojnë, 395 00:29:05,290 --> 00:29:06,620 të kthehemi në atë vend. 396 00:29:06,620 --> 00:29:10,480 Pra, ju thjesht duan për të ruajtur URL për hir referenca. 397 00:29:10,480 --> 00:29:13,840 398 00:29:13,840 --> 00:29:19,630 >> Kjo është vetëm në thelb tjetër sintaksë për për lak. 399 00:29:19,630 --> 00:29:26,360 Unë mund vetëm të bëjë paths.each vend e për rrugën në shtigjet me indeks. 400 00:29:26,360 --> 00:29:31,280 Dhe kjo Sintaksa është Ruby for-- rrugë është ajo që ne e bëmë deri këtu, 401 00:29:31,280 --> 00:29:33,920 deklaruar një ndryshore për çdo send. 402 00:29:33,920 --> 00:29:38,540 Dhe indeksi sillet si Mbaj në C për sythe. 403 00:29:38,540 --> 00:29:41,280 Kështu që ju mund të ruaj gjurmët e asaj që indeksi është. 404 00:29:41,280 --> 00:29:45,200 >> Kështu që këtu është vetëm një pak gjë i përshtatshëm 405 00:29:45,200 --> 00:29:46,950 për kur ju jeni drejtimin e kruese. 406 00:29:46,950 --> 00:29:50,580 Nëse jeni duke scraping qindra faqe, për t'u siguruar se ajo nuk është e varur, 407 00:29:50,580 --> 00:29:53,320 ajo do të vetëm të prodhimit, Unë jam i hyrë në këtë faqe, 408 00:29:53,320 --> 00:29:55,960 dhe duke u siguruar që kjo është ende duke vazhduar. 409 00:29:55,960 --> 00:29:59,250 Por për qëllimet tona, sepse ka njëqind artikuj, 410 00:29:59,250 --> 00:30:08,000 Unë jam duke shkuar për të hyrë në vetëm tre prej tyre kështu që ne nuk do të dalë jashtë kohe ketu. 411 00:30:08,000 --> 00:30:13,040 >> Por, para se të shkoj në atë, unë jam vetëm duke shkuar për të treguar ju me të vërtetë të shpejtë, 412 00:30:13,040 --> 00:30:16,940 Unë do të jetë kompjuteri titullin, Çmimi, përshkrimi, dhe URL 413 00:30:16,940 --> 00:30:19,600 e secilit nga lidhjet që unë kam scraped. 414 00:30:19,600 --> 00:30:23,720 Dhe pastaj kjo është vetëm Sintaksa për bibliotekën CSV. 415 00:30:23,720 --> 00:30:25,240 Ju hapur një CSV. 416 00:30:25,240 --> 00:30:27,070 Kjo është ajo që unë jam duke shkuar për të thirrur atë. 417 00:30:27,070 --> 00:30:29,430 Të hapur atë me shkruaj detyrave. 418 00:30:29,430 --> 00:30:33,830 Dhe pastaj do të jetë CSV file që ju jeni inputting gjithçka në. 419 00:30:33,830 --> 00:30:37,800 Kjo është vetëm një kontroll mendje e shëndoshë për mua të di se është e running. 420 00:30:37,800 --> 00:30:41,240 Dhe kjo është kontroll ime mendje e shëndoshë ta dinë se është e përfunduar. 421 00:30:41,240 --> 00:30:46,670 Kështu që unë jam vënë titull në një rresht në CSV, çmimi, url, përshkrimin, 422 00:30:46,670 --> 00:30:49,420 të gjithë në rreshta në CSV. 423 00:30:49,420 --> 00:30:53,410 >> Pra, nëse ne do të shkojmë dhe të drejtuar ky now-- dhe unë vetëm 424 00:30:53,410 --> 00:31:04,710 sigurohuni që unë kam ruajtur it-- vend i vetëm kompjuteri atë në terminalin, 425 00:31:04,710 --> 00:31:09,750 ne duhet të kemi një CSV skedar që është prodhuar. 426 00:31:09,750 --> 00:31:13,500 Pra, këtu ne mund të shohim CSV skedë që është prodhuar. 427 00:31:13,500 --> 00:31:19,330 Kjo është prodhimi i arratisje që unë vetëm u zhvillua. 428 00:31:19,330 --> 00:31:23,030 Siç mund ta shikoni këtu, aksesimit faqe 0, 1, 2, 3. 429 00:31:23,030 --> 00:31:27,400 Këto janë titujt, çmimet, përshkrimet. 430 00:31:27,400 --> 00:31:31,710 Dhe nëse ne shikojmë në këtë CSV fotografi që kemi të krijuara, 431 00:31:31,710 --> 00:31:35,700 ju mund të shihni të saj outputted këtu. 432 00:31:35,700 --> 00:31:40,350 Kjo nuk është Excel, kështu që nuk është formatuar në rreshta dhe kolona. 433 00:31:40,350 --> 00:31:45,140 Por ju mund të imagjinoni se si ajo mund të jetë i formatuar. 434 00:31:45,140 --> 00:31:47,740 >> CSV qëndron për vlera të ndara me presje. 435 00:31:47,740 --> 00:31:50,090 Kështu që ju mund ta imagjinoni kjo mund të jetë një rresht. 436 00:31:50,090 --> 00:31:54,700 Dhe çdo presje do tregojnë një kolonë të veçantë. 437 00:31:54,700 --> 00:32:00,010 Vetëm një fjalë e caution-- ndonjëherë ju jeni 438 00:32:00,010 --> 00:32:02,260 scraping gjërat me një shumë të presje. 439 00:32:02,260 --> 00:32:05,100 Pra, nëse ju jeni kompjuteri ajo në një file CSV, 440 00:32:05,100 --> 00:32:10,340 kjo mund të mos Prodhimi mënyrë që ju mund të mendoni. 441 00:32:10,340 --> 00:32:16,770 >> Pra, kjo është në thelb të gjithë ka të scraping HTML themelore 442 00:32:16,770 --> 00:32:20,110 faqet me Nokogiri. 443 00:32:20,110 --> 00:32:26,000 >> Pra, qenia e internetit inovative siç ka dalë 444 00:32:26,000 --> 00:32:33,220 me një më të automatizuar dhe GUI version, megjithëse më pak të fuqishme 445 00:32:33,220 --> 00:32:35,540 Versioni i scraping faqet e internetit të ndryshme. 446 00:32:35,540 --> 00:32:39,060 Dhe për qëllimet tona Unë do të demonstruar 447 00:32:39,060 --> 00:32:42,920 një zgjerim Chrome quajtur Kimono. 448 00:32:42,920 --> 00:32:46,690 Dhe të gjithë ju duhet të bëni është që ju të lundruar në faqe që ju dëshironi për të hall. 449 00:32:46,690 --> 00:32:48,590 Ju klikoni mbi një fushë të interesit. 450 00:32:48,590 --> 00:32:51,510 Ju gjej kalibrin fushat, sepse ajo do të automatikisht 451 00:32:51,510 --> 00:32:54,360 zbuluar atë që mendon ju duan të jenë të scraping, 452 00:32:54,360 --> 00:32:56,280 dhe pastaj ju vetëm të krijojë një API. 453 00:32:56,280 --> 00:33:03,700 >> Pra, në qoftë se ne ishim për të demonstruar atë në Craigslist, ai në fakt nuk do të punojë. 454 00:33:03,700 --> 00:33:08,290 Dhe kjo është ajo që unë kam qenë duke shkuar prapa në duke thënë se për të mos qenë aq të fuqishme. 455 00:33:08,290 --> 00:33:10,320 Ajo ka problem duke krijuar API. 456 00:33:10,320 --> 00:33:13,400 Por, si një demonstrim e çfarë do të bëjë, 457 00:33:13,400 --> 00:33:17,460 në qoftë se ju instaloni zgjerimin Chrome, të gjithë ju bëni është të klikoni mbi të. 458 00:33:17,460 --> 00:33:21,750 Ajo Kimonofies faqe, dhe pastaj ju klikoni mbi gjë që ju doni të script. 459 00:33:21,750 --> 00:33:24,480 >> Pra, nëse unë do të klikoni mbi se, ai do të nxjerrë në pah 460 00:33:24,480 --> 00:33:28,130 ajo që mendon se unë dua të të jetë scraping off atë faqe. 461 00:33:28,130 --> 00:33:33,660 Kështu që ndoshta unë e quaj këtë listings. 462 00:33:33,660 --> 00:33:36,430 Kjo është se sa çështje e kam zgjedhur. 463 00:33:36,430 --> 00:33:43,810 Dhe unë vetëm mund të konfirmojë apo mohojë disa Listimet e tjera të sugjeruara 464 00:33:43,810 --> 00:33:49,600 për të marrë atë për të shtuar në çfarë do të scraped. 465 00:33:49,600 --> 00:33:52,330 >> Deri tani ne mund të shohim se ka njëqind artikuj të zgjedhur. 466 00:33:52,330 --> 00:33:58,060 Nëse unë dua që të ketë një fushë tjetër që unë edhe hall e cila është e lidhur me këtë, 467 00:33:58,060 --> 00:34:02,540 thonë se unë dua të hall çmimin si edhe, atëherë unë mund të bëjë të njëjtën gjë. 468 00:34:02,540 --> 00:34:06,190 469 00:34:06,190 --> 00:34:11,550 >> Kështu që këtu është një demonstrim se si është shumë më pak të fuqishme, sepse tani është 470 00:34:11,550 --> 00:34:15,050 picking up qytetin në vend i vetëm çmimi që unë dua. 471 00:34:15,050 --> 00:34:16,989 Dhe tani është e kap 200 gjëra. 472 00:34:16,989 --> 00:34:19,880 Ju mund të ktheheni mbrapsh dhe të fshini. 473 00:34:19,880 --> 00:34:21,449 Ju mund të provoni përsëri. 474 00:34:21,449 --> 00:34:24,250 Por nuk ka garanci. 475 00:34:24,250 --> 00:34:29,909 Kjo është se si kjo punon ndonjëherë. 476 00:34:29,909 --> 00:34:32,969 Siç e shihni këtu, tani ai thotë se 96 deri këtu. 477 00:34:32,969 --> 00:34:37,000 Është kap shumica e lidhjeve që ju doni të hall, por jo 478 00:34:37,000 --> 00:34:39,280 domosdoshmërisht të gjithë ata. 479 00:34:39,280 --> 00:34:43,909 >> Një tjetër mjet i dobishëm i Kimono pse është që ju mund të shkoni në veçoritë e përparuara 480 00:34:43,909 --> 00:34:47,980 këtu, shkoni për të avancuar, dhe ai do t'ju tregojë 481 00:34:47,980 --> 00:34:53,139 ndarja e unike mënyrë për të hyrë në HTML 482 00:34:53,139 --> 00:34:54,909 tags që ju doni në hall. 483 00:34:54,909 --> 00:35:01,450 Pra për listings, në qoftë se ju shikoni në këtu, Nëse ju hyni në hapësirë ​​p div përfshijnë një, 484 00:35:01,450 --> 00:35:06,030 ju mund të vërtetë të përdorni vetëm këtë në kodin tuaj Nokogiri, 485 00:35:06,030 --> 00:35:10,780 ku para se të kishim span.txt për të hyrë në secilin nga lista e. 486 00:35:10,780 --> 00:35:13,270 Nëse unë vetëm dua tekstin brenda listings, 487 00:35:13,270 --> 00:35:18,950 Unë mund të dhëna hapësirë ​​div p hapësirë ​​hapësirë ​​hapësirë ​​hapësirë ​​hapësirë ​​një, 488 00:35:18,950 --> 00:35:21,570 dhe ai do të arrijë të njëjtin efekt. 489 00:35:21,570 --> 00:35:26,320 Dhe për ata prej jush që janë të interesuar në përdorur shprehje të rregullta, 490 00:35:26,320 --> 00:35:31,670 kjo ndodh për të ju jap më të rregullt shprehje lloj i vargut të dhëna 491 00:35:31,670 --> 00:35:34,900 për të gjetur gjërat ju jeni duke u përpjekur për të gjetur. 492 00:35:34,900 --> 00:35:44,130 >> Pra, ka një tjetër tipar i ftohtë i Kimono ku ju mund të numërtoj faqe, 493 00:35:44,130 --> 00:35:47,780 e cila nuk është vetëm mund të ia dal rezultatet e kësaj faqe, 494 00:35:47,780 --> 00:35:50,890 Unë mund të klikoni në këtë pak button këtu, Pagination, 495 00:35:50,890 --> 00:35:55,580 specifikojë butonin që do të marrë mua për faqen tjetër, 496 00:35:55,580 --> 00:35:59,500 dhe pastaj ai thjesht do të dinë se ajo mund të iterate në faqen tjetër, 497 00:35:59,500 --> 00:36:04,120 dhe pastaj hall gjithë the-- aq kohë pasi është e njëjta format e course-- 498 00:36:04,120 --> 00:36:06,110 arratisje të gjitha këto lidhje si. 499 00:36:06,110 --> 00:36:15,230 >> Pra, për shkak Kimono nuk dëshiron të punojnë me Craigslist, atë që ne kemi bërë 500 00:36:15,230 --> 00:36:19,790 po unë kam Kimonofied Harvard Crimson. 501 00:36:19,790 --> 00:36:29,380 Unë e kam tërhequr jashtë disa nga lloj Top Featured Artikuj, konfirmojnë këtu. 502 00:36:29,380 --> 00:36:33,090 Thuaj të gjitha këto. 503 00:36:33,090 --> 00:36:35,830 Unë kam hartuar këtë API për ju përpara kohe. 504 00:36:35,830 --> 00:36:38,990 Por përndryshe çfarë do të bënit është që ju vetëm do të klikoni Done. 505 00:36:38,990 --> 00:36:40,940 Shkruani të dhënat tuaja API. 506 00:36:40,940 --> 00:36:45,260 Vendosur atë në ose zvarritje automatizuar ose manuale. 507 00:36:45,260 --> 00:36:48,460 Kështu që ju mund të rinovuar tuaj të dhënat e çdo 15 minuta, 508 00:36:48,460 --> 00:36:50,330 javore, çdo ditë, çdo gjë që dëshironi. 509 00:36:50,330 --> 00:36:51,160 Emri API tuaj. 510 00:36:51,160 --> 00:36:52,790 Krijo API. 511 00:36:52,790 --> 00:36:58,460 Për të mirën tuaj, unë kam krijuar Crimson faqe API para tashmë. 512 00:36:58,460 --> 00:37:02,480 >> Kështu që ju vetëm të krijojë një llogari në Kimono, dhe ajo 513 00:37:02,480 --> 00:37:06,240 do të ruajë të gjitha TV tuaj për ju. 514 00:37:06,240 --> 00:37:10,330 Pra, në thelb kjo është e gjitha tuaj scrapes të veçanta të ndryshme. 515 00:37:10,330 --> 00:37:18,250 >> Pra, nëse ne shikojmë këtu, kjo është Mendimet lidhjet që unë kam mbledhur. 516 00:37:18,250 --> 00:37:21,290 Këto janë tipare lidhjet që unë kam mbledhur. 517 00:37:21,290 --> 00:37:24,090 Dhe këto janë më të lexuar lidhjet që unë kam mbledhura 518 00:37:24,090 --> 00:37:27,120 nga kjo arratisje më të fundit API. 519 00:37:27,120 --> 00:37:30,790 >> Pra, nëse ju mund të shihni këtu, këto do të jetë i paraqitur, 520 00:37:30,790 --> 00:37:34,130 këto do të jenë mendimet, që në këtë shembull, 521 00:37:34,130 --> 00:37:38,150 Unë e kam kombinuar ato të gjithë në një koleksion. 522 00:37:38,150 --> 00:37:42,780 Por në qoftë se ju vetëm të luajnë rreth me të pak, ju mund të ndarë atë 523 00:37:42,780 --> 00:37:45,090 dhe ndaje atë megjithatë ju doni të për aq kohë 524 00:37:45,090 --> 00:37:47,520 si formatimit është paksa e ndryshme. 525 00:37:47,520 --> 00:37:51,320 >> Vetëm për të luajtur rreth me këtë, zvarritje të ngritur, një dobësi 526 00:37:51,320 --> 00:37:58,120 është që ju vetëm mund të zvarritem deri në 25 faqe në një kohë. 527 00:37:58,120 --> 00:38:00,430 Kjo është një nga faktorët kufizues. 528 00:38:00,430 --> 00:38:03,060 Por këtu, në qoftë se keni vendosur atë për zvarritje manual, kjo 529 00:38:03,060 --> 00:38:06,100 është se si ju mund të thoni atë për të rinovuar të dhënat tuaja. 530 00:38:06,100 --> 00:38:11,010 Dhe këtu ju mund të shihni historinë tuaj zvarritje për çdo gjë që ju keni gjurmuar. 531 00:38:11,010 --> 00:38:16,000 Dhe ju djema mund të shkoni përsëri, të nënshkruar, luajnë rreth me të gjitha mënyra të ndryshme 532 00:38:16,000 --> 00:38:20,340 që ju mund të modifikoj dhe të përdorin të dhënat tuaja. 533 00:38:20,340 --> 00:38:24,580 >> Kimono mund të jetë ngritur për të hall lidhjet brenda lidhjet. 534 00:38:24,580 --> 00:38:29,700 Dhe ju do të bëni këtë duke e parë scraping një listë të lidhjeve, 535 00:38:29,700 --> 00:38:35,390 dhe pastaj duke përdorur atë si një API jump off pikë për një API 536 00:38:35,390 --> 00:38:36,710 që ju të krijoni skenarin. 537 00:38:36,710 --> 00:38:42,040 Por kjo është më e komplikuar se ajo që ne jemi duke shkuar për të marrë në sot. 538 00:38:42,040 --> 00:38:44,270 >> Pra, kjo është Kimono. 539 00:38:44,270 --> 00:38:46,980 Ne do të flasim për të mirat dhe të këqijat e Nokogiri dhe Kimono. 540 00:38:46,980 --> 00:38:50,380 >> Nokogiri, kjo është me të vërtetë i shpejtë. 541 00:38:50,380 --> 00:38:51,640 Është e lehtë për të provuar. 542 00:38:51,640 --> 00:38:55,910 Ju vetëm mund të vë asgjë për tastierë, të lehtë për të konfiguruar. 543 00:38:55,910 --> 00:39:00,400 Ju mund të vendosë saktësisht se çfarë ju doni të hall dhe dyqan. 544 00:39:00,400 --> 00:39:02,060 Nuk ka kufizime faqe. 545 00:39:02,060 --> 00:39:08,010 Unë në fakt e përdorën atë në hall si 1800 faqet e internetit të shkollave Afrikës së Jugut 546 00:39:08,010 --> 00:39:10,870 për postë elektronike për një stazh që kam bërë. 547 00:39:10,870 --> 00:39:16,060 >> Pra, kjo është e mundur, edhe pse praktikat më të mira do të jetë për të ndarë script. 548 00:39:16,060 --> 00:39:19,310 Sepse në qoftë se ai dështon, atëherë ju nuk merrni asgjë. 549 00:39:19,310 --> 00:39:22,790 Por në qoftë se ju bëni një njëqind, ndoshta 200 faqe në një kohë, 550 00:39:22,790 --> 00:39:27,840 atëherë ju keni një shans për të paktën marrë atë pak nga pak, sidomos 551 00:39:27,840 --> 00:39:30,280 në qoftë se ju keni internet keqe. 552 00:39:30,280 --> 00:39:32,720 >> Për fat të keq ajo mund të hall vetëm HTML. 553 00:39:32,720 --> 00:39:35,190 Pra, nëse ju keni pages-- ngarkohen në mënyrë dinamike 554 00:39:35,190 --> 00:39:39,480 dhe unë do t'ju tregoj një shembull si kayak në një second-- 555 00:39:39,480 --> 00:39:42,270 Nokogiri për fat të keq nuk mund të hall atë. 556 00:39:42,270 --> 00:39:45,700 >> Por Kimono është gjithashtu e lehtë për t'u përdorur. 557 00:39:45,700 --> 00:39:48,330 Siç e keni parë, është në thelb një pikë dhe klikoni. 558 00:39:48,330 --> 00:39:50,260 Ajo mund të hall JavaScript. 559 00:39:50,260 --> 00:39:53,790 Për fat të keq, ka një maksimum për sa shumë faqe ju mund hall. 560 00:39:53,790 --> 00:39:55,710 Ndonjëherë kjo është pak e vështirë për të konfiguruar. 561 00:39:55,710 --> 00:39:57,240 Ajo merr hutuar. 562 00:39:57,240 --> 00:40:00,920 Por është patjetër diçka që të marrin në konsideratë 563 00:40:00,920 --> 00:40:05,930 në qoftë se ju nuk jeni duke u përpjekur që të ketë një hall super të fuqishme maintainable. 564 00:40:05,930 --> 00:40:09,010 Nëse ju vetëm doni të merrni çdo gjë off e një faqe shpejt, 565 00:40:09,010 --> 00:40:10,970 atëherë Kimono është një të vërtetë mjet i mirë për të përdorur. 566 00:40:10,970 --> 00:40:16,490 Dhe siç e përmenda më parë, nuk ka tipar i avancuar i Kimono 567 00:40:16,490 --> 00:40:19,260 që tregon se si të të hapur HTML unik 568 00:40:19,260 --> 00:40:24,210 element, e cila është e dobishme super edhe në qoftë se ju jeni duke punuar në Nokogiri. 569 00:40:24,210 --> 00:40:30,370 >> Pra, nëse ne do të shkojmë në vendin e Kayak, për shembull, ju mund të shihni atje is-- 570 00:40:30,370 --> 00:40:31,750 apo ndoshta ju nuk mund ta shohin. 571 00:40:31,750 --> 00:40:38,910 Por në qoftë se unë ju tregojnë URL për kajak, kjo në fakt është vetëm burim URL. 572 00:40:38,910 --> 00:40:43,800 Kjo është URL para qenit modifikuar me çfarëdo Scripts JavaScript 573 00:40:43,800 --> 00:40:45,350 se ata kanë shkuar në. 574 00:40:45,350 --> 00:40:52,420 Dhe ajo do të duken të ndryshme nga inspektuar element. 575 00:40:52,420 --> 00:40:55,940 >> Pra, nëse ju shkoni nëpër dhe ju ndeshje deri Inspect Element 576 00:40:55,940 --> 00:41:00,340 Kodi për kodin burim, është e në të vërtetë do të jenë të ndryshme. 577 00:41:00,340 --> 00:41:05,640 Dhe kjo është në thelb arsyeja pse Nokogiri nuk mund të hall faqet ngarkohen në mënyrë dinamike. 578 00:41:05,640 --> 00:41:08,810 Sepse Nokogiri është scraping burim URL, 579 00:41:08,810 --> 00:41:16,310 ndërsa Kimono është në fakt scraping atë që ju jeni në thelb 580 00:41:16,310 --> 00:41:18,260 duke parë në Select element. 581 00:41:18,260 --> 00:41:23,880 >> Pra, nëse unë shkoj nëpër dhe unë provoni dhe Kimonofy Kayak, 582 00:41:23,880 --> 00:41:26,600 Unë në fakt mund të shkoni nëpër dhe zgjidhni çmimin. 583 00:41:26,600 --> 00:41:32,360 Kjo është pak e vështirë, dhe në këtë rast, është 584 00:41:32,360 --> 00:41:36,600 në fakt duke parë këtë çmim si të ndryshëm nga këto. 585 00:41:36,600 --> 00:41:41,110 Kështu, ndërsa ju mund të configure-- apo në qoftë se kjo nuk ishin të ngarkohen në mënyrë dinamike, 586 00:41:41,110 --> 00:41:43,620 ju mund të konfiguroni Nokogiri për të marrë të gjitha këto. 587 00:41:43,620 --> 00:41:48,230 >> Sepse formatimit është pak të ndryshme për këtë listim 588 00:41:48,230 --> 00:41:51,280 pasi ajo është në krahasim me pjesën tjetër prej tyre, dhe ju mund të shihni këtu 589 00:41:51,280 --> 00:41:54,830 është e shkuar në të vërtetë dhe përzgjedhura të gjitha çmimet e fluturimit. 590 00:41:54,830 --> 00:42:01,200 Ndoshta unë dua për të zgjedhur koha e fluturimit si. 591 00:42:01,200 --> 00:42:04,700 Dhe unë mund të shkoni nëpër dhe lloj konfiguroni atë. 592 00:42:04,700 --> 00:42:06,950 Unë nuk dua që. 593 00:42:06,950 --> 00:42:10,200 Unë vetëm dua kohë fluturimit të ardhshëm. 594 00:42:10,200 --> 00:42:17,030 Dhe pastaj pas nja dy këto duke kaluar, ajo merr foto. 595 00:42:17,030 --> 00:42:19,080 Pra Kimono është goxha i zgjuar. 596 00:42:19,080 --> 00:42:21,900 Është vetëm jo aq të fuqishme. 597 00:42:21,900 --> 00:42:26,710 >> Ka disa të tjera alternativa që ju mund të përdorni. 598 00:42:26,710 --> 00:42:31,600 Dhe unë do t'ju tregoj atyre këtu. 599 00:42:31,600 --> 00:42:35,790 Nëse ju jeni më të rehatshme në Python në vend të Ruby ndoshta, 600 00:42:35,790 --> 00:42:39,290 ka një bibliotekës quajtur supë bukur. 601 00:42:39,290 --> 00:42:40,430 Ju mund të përdorni atë. 602 00:42:40,430 --> 00:42:42,270 Është shumë e ngjashme me Nokogiri. 603 00:42:42,270 --> 00:42:44,620 Ajo ka disa karakteristika më shumë. 604 00:42:44,620 --> 00:42:52,160 Ju mund të gjeni një tag HTML dhe pastaj të shkojë deri ose të lëvizin anash. 605 00:42:52,160 --> 00:42:54,690 >> Ka PyQt. 606 00:42:54,690 --> 00:42:57,820 Ky fakt mund hall dinamike vende, sepse kjo është lloj i 607 00:42:57,820 --> 00:43:02,540 është një WebKit që pretendon të jetë një shfletues pa ka në të vërtetë 608 00:43:02,540 --> 00:43:03,670 duke qenë një shfletues. 609 00:43:03,670 --> 00:43:07,490 Pra, kjo do të presë për të gjithë JavaScript për të ngarkesës së pari, dhe pastaj 610 00:43:07,490 --> 00:43:09,560 shkoni në dhe të përpiqet dhe hall site. 611 00:43:09,560 --> 00:43:13,560 >> Nëse ju doni që të rrinë me Ruby, ju mund të shkoni një nivel up nga Nokogiri. 612 00:43:13,560 --> 00:43:17,650 Ju mund të përdorni Vjeter me një këmishë Poltergeist. 613 00:43:17,650 --> 00:43:22,910 Dhe kjo mund të vërtetë në thelb të bëjë të njëjtën gjë 614 00:43:22,910 --> 00:43:26,610 si PyQt, e cila është një WebKit. 615 00:43:26,610 --> 00:43:29,610 Ai pret për JavaScript për të ngarkesës së pari. 616 00:43:29,610 --> 00:43:33,340 Nëse ju shëndoshë rreth me atë të mjaftueshme, ju mund të merrni edhe atë për të klikoni mbi gjërat. 617 00:43:33,340 --> 00:43:42,780 >> Pra, nëse ka një lidhje që nuk është një href klasik ku 618 00:43:42,780 --> 00:43:46,350 rruga është e lehtë të arritshme, dhe kjo është diçka JavaScript që zbulon 619 00:43:46,350 --> 00:43:49,490 një klik, ju në fakt mund të bëjë këtë. 620 00:43:49,490 --> 00:43:53,430 Biblioteka më popullor për të simuluar një përdorues 621 00:43:53,430 --> 00:43:56,390 është në JavaScript, e cila është PhantomJS. 622 00:43:56,390 --> 00:44:01,010 Kjo mund të qartë hall dinamike faqet sepse kjo është në thelb 623 00:44:01,010 --> 00:44:04,270 pretenduar të jetë Chrome pa ndërfaqen e përdoruesit. 624 00:44:04,270 --> 00:44:09,970 >> Dhe pastaj, sigurisht më fuqishme, por opsion slowest, 625 00:44:09,970 --> 00:44:13,260 është një automatizimi shfletues Selen. 626 00:44:13,260 --> 00:44:15,550 Dhe për fat të keq, ju nuk do të jetë 627 00:44:15,550 --> 00:44:19,770 në gjendje të bëjë këtë brenda IDE tuaj CS50. 628 00:44:19,770 --> 00:44:24,140 Sepse në thelb ajo është nuk është ajo çizmet deri Chrome tuaj, 629 00:44:24,140 --> 00:44:27,090 Firefox, çfarëdo shfletuesi që ju dëshironi të përdorni, 630 00:44:27,090 --> 00:44:32,570 dhe ajo këngë ndoshta miun tuaj lëvizje, çdo gjë që ju shkruani në, 631 00:44:32,570 --> 00:44:35,170 dhe vetëm ajo lloj automatizojnë këtë proces. 632 00:44:35,170 --> 00:44:42,070 Kështu ajo u zhvillua si një lloj Faqja e internetit testimi automatizimi mjet. 633 00:44:42,070 --> 00:44:45,910 Por shumë njerëz përdorin Selen në hall Websites 634 00:44:45,910 --> 00:44:49,990 se ata ndryshe kemi një shumë vështirësi scraping 635 00:44:49,990 --> 00:44:53,700 me disa nga këto mjete të tjera, më të shpejtë. 636 00:44:53,700 --> 00:44:57,530 >> Pra, kjo është e gjitha unë kam marrë për web scraping. 637 00:44:57,530 --> 00:44:58,090 Have fun. 638 00:44:58,090 --> 00:45:01,762 639 00:45:01,762 --> 00:45:02,680 >> Audienca: Pyetje. 640 00:45:02,680 --> 00:45:04,016 >> ROBERT KRABEK: Po. 641 00:45:04,016 --> 00:45:12,840 >> Audienca: A ka një mekanizëm për të hash Faqja e internetit kështu që ju mund të në thelb 642 00:45:12,840 --> 00:45:14,207 të shkojnë nëpërmjet saj më vonë. 643 00:45:14,207 --> 00:45:15,040 ROBERT KRABEK: Po. 644 00:45:15,040 --> 00:45:21,530 Pra, ne kemi vënë, në tonë shembull, për të dy prej tyre, 645 00:45:21,530 --> 00:45:24,980 ne kemi vënë të gjithë faqen e internetit në doc. 646 00:45:24,980 --> 00:45:31,260 Dhe kështu që ju mund të vërtetë të marrë vetëm doc ndryshueshme dhe shkruani atë në një skedar. 647 00:45:31,260 --> 00:45:35,490 Pra, nëse kam kërkuar për të, unë mund të shkruaj atë si një skedar HTML, 648 00:45:35,490 --> 00:45:39,280 dhe pastaj në vend të përdorimit OpenURI dhe një kërkesë curl, 649 00:45:39,280 --> 00:45:43,520 atëherë unë mund vetëm të hapë doc HTML dhe pastaj kërkoni për atë. 650 00:45:43,520 --> 00:45:47,960 >> Audienca: Por ju mund të ruajë lloj i përvojës në internet 651 00:45:47,960 --> 00:45:48,930 ndërsa ju bëni offline. 652 00:45:48,930 --> 00:45:51,013 Për shembull. kur ju jeni fluturues për disa orë, 653 00:45:51,013 --> 00:45:54,070 Unë dua të thelb Arkivi të gjithë internetit. [Padëgjueshme] 654 00:45:54,070 --> 00:45:58,780 >> ROBERT KRABEK: Po, kjo është exactly-- kështu që fjalë për fjalë ajo që kjo është duke bërë 655 00:45:58,780 --> 00:46:03,010 po ajo është duke marrë gjithçka që do të jetë në këtë URL. 656 00:46:03,010 --> 00:46:11,280 Pra, nëse ne u curl, është duke marrë të gjithë këtë HTML, 657 00:46:11,280 --> 00:46:14,590 dhe kjo është ruajtjen atë brenda doc ndryshueshme. 658 00:46:14,590 --> 00:46:17,290 Pra, atëherë ju mund të bëni çdo gjë që ju doni të bëni me doc. 659 00:46:17,290 --> 00:46:18,575 Ju mund të prodhimit është në një skedar. 660 00:46:18,575 --> 00:46:19,950 Audienca: Por kjo nuk është e lidhur deri. 661 00:46:19,950 --> 00:46:20,780 Kjo nuk është dinamike. 662 00:46:20,780 --> 00:46:22,770 Kjo nuk është gjithkund rekursive, e drejtë? 663 00:46:22,770 --> 00:46:24,016 Ju shihni se çfarë dua të them? 664 00:46:24,016 --> 00:46:28,359 Unë jam duke u përpjekur për të në thelb një lloj të hash të gjithë faqen e internetit në hard drive time 665 00:46:28,359 --> 00:46:31,150 kështu që unë mund të në thelb të bëjë atë për disa orë pa internet. 666 00:46:31,150 --> 00:46:32,025 >> ROBERT KRABEK: E drejta. 667 00:46:32,025 --> 00:46:37,140 Pra, nëse unë had-- kështu që ku është dosja ime I / O? 668 00:46:37,140 --> 00:46:47,766 Pra, kjo është skedari I / O. Pra, thonë se në vend të kësaj të kësaj, unë e quaj këtë craigslist.html. 669 00:46:47,766 --> 00:46:52,620 670 00:46:52,620 --> 00:46:53,940 Unë do të hapur atë lart. 671 00:46:53,940 --> 00:46:59,020 Unë do të vë doc në të. 672 00:46:59,020 --> 00:47:00,470 I mbyllë dosjen. 673 00:47:00,470 --> 00:47:05,410 Dhe pastaj vetëm për shkak se CS50 IDE është mbi re, që është çfarëdo. 674 00:47:05,410 --> 00:47:07,710 Unë mund të shkoni këtu. 675 00:47:07,710 --> 00:47:09,320 Unë mund të shkarkoni skedarin. 676 00:47:09,320 --> 00:47:11,830 Dhe pastaj kjo do të jetë në hard drive time. 677 00:47:11,830 --> 00:47:13,930 Kështu që ju mund të bëni atë në këtë mënyrë. 678 00:47:13,930 --> 00:47:18,830 Ose në qoftë se ju jeni në shtëpi, jo duke përdorur CS50 IDE, si Sublime apo diçka, 679 00:47:18,830 --> 00:47:21,900 kjo është edhe më e lehtë, sepse kjo është e gjitha në dispozicion në nivel lokal, 680 00:47:21,900 --> 00:47:23,020 jo i lidhur me internet. 681 00:47:23,020 --> 00:47:24,720 >> Audienca: Unë shoh. 682 00:47:24,720 --> 00:47:26,580 Kjo është për një problem të veçantë. 683 00:47:26,580 --> 00:47:30,410 Mund ta bëni atë në mënyrë që ju Recursively shkojnë disa shtresa lloj të thellë e tillë? 684 00:47:30,410 --> 00:47:33,801 >> ROBERT KRABEK: Unë mund ta shkarkoni dosjet si dhe, nëse kjo është ajo që ju jeni duke kërkuar. 685 00:47:33,801 --> 00:47:34,426 Audienca: Po. 686 00:47:34,426 --> 00:47:39,890 687 00:47:39,890 --> 00:47:41,440 >> ROBERT KRABEK: Best. 688 00:47:41,440 --> 00:47:43,182