1 00:00:00,000 --> 00:00:03,234 >> [Prehrávanie hudby] 2 00:00:03,234 --> 00:00:05,275 3 00:00:05,275 --> 00:00:06,400 ROBERT Krábek: Ahoj, chlapci. 4 00:00:06,400 --> 00:00:09,980 Volám sa Robert Krábek, a Budem učiť vám chlapci 5 00:00:09,980 --> 00:00:15,470 ako škriabať web s Nokogiri, čo je knižnica Ruby, 6 00:00:15,470 --> 00:00:17,566 a Kimono, čo je rozšírenie Chrome. 7 00:00:17,566 --> 00:00:20,940 8 00:00:20,940 --> 00:00:25,010 >> Takže najprv je tu pár vecí, ktoré vás 9 00:00:25,010 --> 00:00:28,790 môže robiť, ak možno ste boli robí všetky psets doteraz 10 00:00:28,790 --> 00:00:31,170 a váš pracovný priestor je Začínam byť trochu plná. 11 00:00:31,170 --> 00:00:37,060 Môžeme vlastne len ísť a vytvoriť nový pracovný priestor pre vás 12 00:00:37,060 --> 00:00:41,220 len urobiť úplne nový projekt v. 13 00:00:41,220 --> 00:00:46,160 Takže ak si chcete pokračovať pracuje v CS50 šablóny ID 14 00:00:46,160 --> 00:00:49,080 že máte v súčasnej dobe, neváhajte, a môžete len 15 00:00:49,080 --> 00:00:54,700 nainštalovať Nokogiri s CFLAGS equals-- gem install nokogiri. 16 00:00:54,700 --> 00:00:56,930 Ale inak Ukážem vám, ako nastaviť nový jeden hore. 17 00:00:56,930 --> 00:01:01,210 A potom je to v podstate zvrhnutie ďalšie kolieska. 18 00:01:01,210 --> 00:01:07,120 A vy kódovanie, ako by ste boli len kódovanie v Sublime alebo tak niečo. 19 00:01:07,120 --> 00:01:12,365 Takže keď sme sa presunúť ju. 20 00:01:12,365 --> 00:01:14,930 21 00:01:14,930 --> 00:01:18,690 >> Tak hovoria, že toto je vaša súčasná SK 50 ID. 22 00:01:18,690 --> 00:01:21,490 Stačí si len ísť do Cloud9 tu. 23 00:01:21,490 --> 00:01:22,725 Môžete ísť na palubnú dosku. 24 00:01:22,725 --> 00:01:26,720 25 00:01:26,720 --> 00:01:29,950 To by malo priniesť až karte schôdzok. 26 00:01:29,950 --> 00:01:32,980 A potom môžete stačí kliknúť tu Vytvoriť nový pracovný priestor. 27 00:01:32,980 --> 00:01:37,600 Pomenujte nový pracovný priestor, Možno test, alebo škrabanie. 28 00:01:37,600 --> 00:01:42,700 A potom kliknite tu túto záložku vlastné, miesto na karte CS50 šablón. 29 00:01:42,700 --> 00:01:45,155 A potom stačí ísť a vytvorte nový pracovný priestor. 30 00:01:45,155 --> 00:01:48,280 >> Už som vytvoril pracovný priestor tu. 31 00:01:48,280 --> 00:01:50,640 Takže budeme pracovať s tým. 32 00:01:50,640 --> 00:01:55,380 A ak ste vytvorili nový Pracovná plocha tak s karte Vlastné 33 00:01:55,380 --> 00:02:04,560 môžete zadať gem install nokogiri, ktorý sa nebude tu. 34 00:02:04,560 --> 00:02:06,230 OK, je to trochu zmrznutý. 35 00:02:06,230 --> 00:02:08,979 Ale môžete zadať gem install nokogiri. 36 00:02:08,979 --> 00:02:15,970 A, ktorá by mala byť tak je na inštaláciu. 37 00:02:15,970 --> 00:02:20,590 >> Ako som už povedal skôr, ak ste stále prácu vo vašom CS50 šablóny ID, 38 00:02:20,590 --> 00:02:30,270 stačí zadať CFLAGS rovná gem install nokogiri. 39 00:02:30,270 --> 00:02:33,130 A ja som už nainštalovaný to tu, takže nebudem robiť. 40 00:02:33,130 --> 00:02:38,500 Ale pre tých, ktorí po spolu, neváhajte tak urobiť. 41 00:02:38,500 --> 00:02:46,000 >> Takže akonáhle ste sa dostali svoj Nokogiri inštalovaný pracovný priestor alebo knižnicu, 42 00:02:46,000 --> 00:02:49,500 Chystám sa vám trochu z intenzívneho kurzu syntaxe Ruby 43 00:02:49,500 --> 00:02:53,380 pretože Nokogiri je knižnica Ruby. 44 00:02:53,380 --> 00:03:03,710 Takže budete potrebovať poznať niektoré základné Ruby syntax pre prácu s Nokogiri. 45 00:03:03,710 --> 00:03:08,750 Takže niektoré základné rozdiely z toho, čo ste zvyknutí 46 00:03:08,750 --> 00:03:13,370 Možno, že keby ste pracovali doteraz len v C a PHP, 47 00:03:13,370 --> 00:03:16,010 deklarujete premenné bez typu. 48 00:03:16,010 --> 00:03:19,720 Nemusíte používať bodkočiarkami, čo je tak trochu úľava. 49 00:03:19,720 --> 00:03:25,480 Neexistuje žiadne zátvorky teraz okolo pre alebo pri slučky, napr. 50 00:03:25,480 --> 00:03:29,460 Musíte len blok kódu, a potom si dať koniec na konci to. 51 00:03:29,460 --> 00:03:32,380 Nie je a navyše alebo mínus mínus, tak len 52 00:03:32,380 --> 00:03:36,180 vedia, že, keď robíte pre slučky, 53 00:03:36,180 --> 00:03:38,620 len plus mínus a rovná sa rovná. 54 00:03:38,620 --> 00:03:43,310 A miesto hash patrí, budete používať potrebovať a potom 55 00:03:43,310 --> 00:03:47,755 čo sa snaží knižnica načítať do vášho programu. 56 00:03:47,755 --> 00:03:51,610 57 00:03:51,610 --> 00:03:53,430 >> Ruby nie je zostavený jazyk. 58 00:03:53,430 --> 00:03:55,550 Takže to je ďalší úľava. 59 00:03:55,550 --> 00:03:59,350 Je to viac podobá PHP kde to je interpretovaný jazyk. 60 00:03:59,350 --> 00:04:03,570 Môžete spustiť ľubovoľný skript, Ruby, že píšete s Ruby nasledoval 61 00:04:03,570 --> 00:04:07,380 podľa mena vášho skriptu alebo programu. 62 00:04:07,380 --> 00:04:13,000 Znamenať, že sa jedná o program, Ruby, stačí skončiť s .rb miesto .c. 63 00:04:13,000 --> 00:04:17,440 A tam sú variabilné veľkosti poľa v Ruby, 64 00:04:17,440 --> 00:04:23,200 čo je super pohodlné, keď ste škrabanie a snáď chcete pripojiť 65 00:04:23,200 --> 00:04:26,090 Údaje, ktoré ste zoškrabovanie a odstraňovanie do poľa. 66 00:04:26,090 --> 00:04:31,960 Nemusíte sa malloc nové pole a skopírovať pôvodný poľa do nového poľa. 67 00:04:31,960 --> 00:04:36,150 Stačí si len pripojiť sa obe označenia šípkami. 68 00:04:36,150 --> 00:04:39,820 A nie sú tam žiadne znaky, tam len jednotlivé struny list. 69 00:04:39,820 --> 00:04:44,760 Tak, že by mala byť o niečo jednoduchšie. 70 00:04:44,760 --> 00:04:50,130 >> Takže my vám len dať nejaké Príklady niektorých základných syntaxe Ruby. 71 00:04:50,130 --> 00:04:57,100 Takže tu môžete vidieť, že namiesto toho, lomítko lomítko, aby sa vyjadril v Ruby, 72 00:04:57,100 --> 00:04:58,740 stačí použiť libry. 73 00:04:58,740 --> 00:05:04,990 A deklarácie premenných, vy stačí napísať premennú rovná 74 00:05:04,990 --> 00:05:07,971 čo chcete premennú byť. 75 00:05:07,971 --> 00:05:09,220 Môžu byť reťazca. 76 00:05:09,220 --> 00:05:14,120 Môžete mať polia, ktorá vyplníte s hodnotami. 77 00:05:14,120 --> 00:05:17,240 puts a potlače sú podobné. 78 00:05:17,240 --> 00:05:20,110 Pre naše účely je Jediný rozdiel je, v skutočnosti 79 00:05:20,110 --> 00:05:25,500 ktorý kladie, čo je skratka pre puts, práve stavia nový riadok 80 00:05:25,500 --> 00:05:27,440 znak na čokoľvek, čo tlačíte. 81 00:05:27,440 --> 00:05:30,980 >> Takže ak dáme malý Demonštrácie tu, 82 00:05:30,980 --> 00:05:41,800 môžeme spustiť tento with-- otvoriť nový terminál. 83 00:05:41,800 --> 00:05:46,020 Môžete vidieť všetky tieto súbory, ktoré sú v mojom termináli. 84 00:05:46,020 --> 00:05:50,960 A keď som jednoducho utiecť Ruby, Ruby intro.rb to, 85 00:05:50,960 --> 00:05:53,530 vyhlási päť Hello Mather, Quincy, Carrier. 86 00:05:53,530 --> 00:05:54,410 Adams. 87 00:05:54,410 --> 00:05:59,295 Tak to je všetko, na konštatovanie pole. 88 00:05:59,295 --> 00:06:01,670 Publikum: Robert, môžete Vaše písmo trochu väčšie? 89 00:06:01,670 --> 00:06:02,461 Robert Krábek: Áno. 90 00:06:02,461 --> 00:06:05,370 91 00:06:05,370 --> 00:06:12,280 A môžem priblížiť, pretože nemôžete priblíženie k terminálu písma zdanlivo. 92 00:06:12,280 --> 00:06:18,790 93 00:06:18,790 --> 00:06:24,630 >> Tak to je, ako tlačiť premenné do vášho terminálu. 94 00:06:24,630 --> 00:06:28,820 Môžete tiež použiť premenné vnútri reťazca. 95 00:06:28,820 --> 00:06:33,720 Takže v poslednej dobe v PHP, môžete sa naučili 96 00:06:33,720 --> 00:06:37,340 že je reťazec interpolácie. 97 00:06:37,340 --> 00:06:43,830 Takže ak ste sa pozrieť sem, ak I deklarovať tri premenné, názov, knižnicu, 98 00:06:43,830 --> 00:06:49,700 a jazykové, a kladie I, I napísať reťazec Ahoj, volám sa. 99 00:06:49,700 --> 00:06:54,190 A potom namiesto PHP verzia reťazca interpolácia 100 00:06:54,190 --> 00:06:58,960 ktorý vyzerá trochu ako je tento, Máte libry, a potom 101 00:06:58,960 --> 00:07:01,220 zložená rovnátka, a potom meno premennej. 102 00:07:01,220 --> 00:07:07,350 A to je to, ako by ste vytlačiť, povedal, bez ohľadu na názov premennej je. 103 00:07:07,350 --> 00:07:10,140 >> A potom sa môžete tiež zřetězit reťazca. 104 00:07:10,140 --> 00:07:12,890 Ruby robí to výborný ľahko sa znamienkom plus. 105 00:07:12,890 --> 00:07:16,110 Musíte len jeden reťazec na ľavej strane a navyše premenné 106 00:07:16,110 --> 00:07:18,860 alebo iný reťazec a reťazec. 107 00:07:18,860 --> 00:07:23,500 Takže keď som vytlačiť na to, by mal len povedať Ahoj, volám sa Robert. 108 00:07:23,500 --> 00:07:27,340 Budem učiť vás nokogiri v Ruby. 109 00:07:27,340 --> 00:07:35,370 >> A nech to len potvrdzujú, že je naozaj case-- rubín intro. 110 00:07:35,370 --> 00:07:36,480 Dobrý deň, volám sa Robert. 111 00:07:36,480 --> 00:07:40,160 Budem učiť vás nokogiri v Ruby. 112 00:07:40,160 --> 00:07:45,600 >> Pohybujúce sa na, ak else, je to trochu inak 113 00:07:45,600 --> 00:07:49,800 z toho, čo by sa mohlo použiť na ak ste pracoval v C. 114 00:07:49,800 --> 00:07:53,200 Nepotrebujete zátvorky. 115 00:07:53,200 --> 00:07:55,220 Nemusíte sa zložené zátvorky. 116 00:07:55,220 --> 00:08:00,170 A miesto else if, je to zlúčia elsif. 117 00:08:00,170 --> 00:08:07,260 Takže tu, či som deklaroval x up Tu, ako vidíme, x je stále 5. 118 00:08:07,260 --> 00:08:11,100 Takže ak x je menšia ako 3, bude to dať malý. 119 00:08:11,100 --> 00:08:14,030 Ak je to menej ako 7, médiá, inak veľké. 120 00:08:14,030 --> 00:08:17,340 Takže 5 je stredná číslo. 121 00:08:17,340 --> 00:08:22,270 A ja ukončiť tento blok kódu s koncom. 122 00:08:22,270 --> 00:08:24,920 >> Tu je moja pre slučke. 123 00:08:24,920 --> 00:08:28,240 A to je tiež syntax mierne odlišné. 124 00:08:28,240 --> 00:08:33,500 0 až piatich v podstate len je deklarovať pole 0 až 5. 125 00:08:33,500 --> 00:08:36,120 Takže tam je päť pozícií v poli. 126 00:08:36,120 --> 00:08:40,500 A potom pre každý slot v tom, že pole, budem postupne i. 127 00:08:40,500 --> 00:08:46,080 A teda by mala vytlačiť 0 až 5, alebo 0 až 4. 128 00:08:46,080 --> 00:08:49,630 A to by malo tlačové médium. 129 00:08:49,630 --> 00:08:51,370 >> A ja budem len požiar cez. 130 00:08:51,370 --> 00:08:54,466 Vy chlapci budú mať prístup K tomuto kódu neskôr. 131 00:08:54,466 --> 00:08:55,965 Takže vy môžete spustiť tento sami. 132 00:08:55,965 --> 00:09:02,090 133 00:09:02,090 --> 00:09:06,620 >> Takže toto je vaša základná while. 134 00:09:06,620 --> 00:09:12,230 To bude len tlač j, postupne o 1 až sme narazili 5. 135 00:09:12,230 --> 00:09:18,320 >> Super rýchla Ruby rýchlokurz o tom, ako napísať funkciu. 136 00:09:18,320 --> 00:09:24,460 Namiesto toho, aby, povedzme, int faktoriál číslo, len musíme def. 137 00:09:24,460 --> 00:09:28,450 A v podstate ty si definovanie funkcie tu. 138 00:09:28,450 --> 00:09:30,600 To sa deje, že je názov funkcie, 139 00:09:30,600 --> 00:09:34,280 a to ich všetky premenné, ktoré chcete odovzdať do funkcie. 140 00:09:34,280 --> 00:09:36,760 Môžete mať, ak príkazy v rámci. 141 00:09:36,760 --> 00:09:38,030 Môžete sa vrátiť. 142 00:09:38,030 --> 00:09:42,620 V tomto prípade, my sme definovanie rekurzívne 143 00:09:42,620 --> 00:09:45,000 realizovaný faktoriál funkcie. 144 00:09:45,000 --> 00:09:48,660 Takže sme len zavolať funkcie Ruby, ako je tento. 145 00:09:48,660 --> 00:09:54,700 >> Takže keď som definovaná To, ako som môžu volať faktoriál, prejsť v 3, 146 00:09:54,700 --> 00:09:59,700 a potom sa 3 sa rovná počtu premenná že môžem použiť vo funkcii. 147 00:09:59,700 --> 00:10:08,010 A to je práve to_s otáčaním vracia hodnotu faktoriálu na reťazec. 148 00:10:08,010 --> 00:10:10,760 V opačnom prípade to bude hodiť chyba hovoriť oh, ja 149 00:10:10,760 --> 00:10:13,230 Nemožno vytlačiť string-- pretože, ako si spomeniete, 150 00:10:13,230 --> 00:10:18,230 kladie je kladený string--, pretože to factorial vrátila číslo. 151 00:10:18,230 --> 00:10:21,850 Takže môžeme previesť, že na reťazec, ako je napríklad. 152 00:10:21,850 --> 00:10:27,856 A naopak, môžete tiež previesť reťazec na celé číslo s to_i. 153 00:10:27,856 --> 00:10:32,650 >> Takže robiť všetko super jednoduché, keby som komentár na to, uložiť 154 00:10:32,650 --> 00:10:36,250 a spustiť faktoriálu funkcie. 155 00:10:36,250 --> 00:10:39,850 Mali by sme byť schopní vidieť že faktoriál z 3. 6. 156 00:10:39,850 --> 00:10:42,790 A to je skutočne pravda. 157 00:10:42,790 --> 00:10:46,160 >> Tak to je váš rýchlokurz v Ruby. 158 00:10:46,160 --> 00:10:53,550 A teraz, keď viete, Ruby, môžeme ísť na do základného Nokogiri stieraním nastaviť. 159 00:10:53,550 --> 00:10:58,190 V podstate všetko, čo musíte urobiť, je, v Ruby, vyžadujú knižnice. 160 00:10:58,190 --> 00:11:04,390 A pre naše účely budeme pomocou knižnica OpenURI rovnako ako Nokogiri. 161 00:11:04,390 --> 00:11:07,870 A potom to, čo vy do-- a bude to vám syntaxe pre tohle-- 162 00:11:07,870 --> 00:11:16,010 je otvorenie adresy URL rovnako ako by ste v lokne žiadosť, čo je skratka pre C URL. 163 00:11:16,010 --> 00:11:20,330 >> Takže budete mať URL webové stránky sa jedná. 164 00:11:20,330 --> 00:11:22,030 Môžete uložiť ho do premennej. 165 00:11:22,030 --> 00:11:27,400 A potom sa môžete preberať, že variabilné pre jedinečné HTML tagy použitím 166 00:11:27,400 --> 00:11:30,590 CSS príkaz. 167 00:11:30,590 --> 00:11:34,360 A potom môžete výstup obsah kamkoľvek budete chcieť. 168 00:11:34,360 --> 00:11:35,720 Môžete začať v databáze. 169 00:11:35,720 --> 00:11:42,040 Môžete výstup do súboru, alebo i len vytlačiť na obrazovku. 170 00:11:42,040 --> 00:11:47,290 >> Tak my vám ukážeme základné škrabkou. 171 00:11:47,290 --> 00:11:52,570 Takže tu vidíte, máme vyžadujúce nokogiri, vyžadujú open-URI. 172 00:11:52,570 --> 00:11:57,150 Vaše základné nastaviť, poďme nazývajú dokument alebo doc, 173 00:11:57,150 --> 00:12:07,780 rovná Nokogiri :: HTML otvorený, čo je Príkaz pripravili nám OpenURI 174 00:12:07,780 --> 00:12:08,920 knižnicu. 175 00:12:08,920 --> 00:12:14,000 A budeme vyhľadávania, pre tých, tých, kto by mohol žiť v štvorkolke, 176 00:12:14,000 --> 00:12:21,270 pre bicykle, ktoré sú uvedené v Bostone na úseku Boston Craigslist kole 177 00:12:21,270 --> 00:12:22,020 miesto. 178 00:12:22,020 --> 00:12:26,460 >> Takže ak ste oboznámení s Curl, budem len 179 00:12:26,460 --> 00:12:28,930 ukázať vám naozaj rýchlo, čo cURL bude robiť. 180 00:12:28,930 --> 00:12:38,350 Keby som chcel získať všetky URL z Na stránkach Craigslist, keď som zadajte lokne, 181 00:12:38,350 --> 00:12:44,950 to jednoducho skládky všetky adresy URL z bicykla webu Craigslist 182 00:12:44,950 --> 00:12:46,720 na môj terminálu. 183 00:12:46,720 --> 00:12:49,130 To nie je zvlášť užitočné, pretože sa mi nepáči 184 00:12:49,130 --> 00:12:53,330 chcete ručne prejsť a nájsť tú vec, ktorý hľadám. 185 00:12:53,330 --> 00:13:01,590 Ale len tak si môžete vidieť, že som vlastne 186 00:13:01,590 --> 00:13:13,966 pomocou správny kód, keď sa pozriete na URL pre Craigslist v bikes-- 187 00:13:13,966 --> 00:13:17,460 z nejakého dôvodu to nie je nájdený. 188 00:13:17,460 --> 00:13:20,340 Ak sa pozriete na túto stránku a pozriete na URL, 189 00:13:20,340 --> 00:13:23,970 to by mal byť zhodný s cURL požiadavku, ktorý som práve poslať. 190 00:13:23,970 --> 00:13:27,700 A naozaj, to je to, čo je uložený v premennej doc. 191 00:13:27,700 --> 00:13:36,540 >> Takže keď sa vrátite do nášho kódu, my potom môže pracovať na tejto premennej doc 192 00:13:36,540 --> 00:13:40,660 pomocou CSS. 193 00:13:40,660 --> 00:13:49,240 Takže povedať, chcel som sa dostať všetky tagy, ktoré sú span.txt, 194 00:13:49,240 --> 00:13:51,740 a všetky A tagy v rámci tohto tagu. 195 00:13:51,740 --> 00:13:56,150 A prečo my by sme mohli chcieť to, počujem ťa plakať? 196 00:13:56,150 --> 00:14:02,920 >> Ak by sme Skontrolujte element, to vám dáva na členenie, ako je štruktúrovaný URL. 197 00:14:02,920 --> 00:14:06,200 Keby som prechádzajte Tu môžete vidieť 198 00:14:06,200 --> 00:14:08,770 , Čo každý z nich iný prvky zastupuje. 199 00:14:08,770 --> 00:14:13,410 Takže možno chcem pristupovať tento konkrétny prvok. 200 00:14:13,410 --> 00:14:16,820 Takže som s použitím Chrome vývojky nástroje pre Skontrolujte Element. 201 00:14:16,820 --> 00:14:22,970 Vidím tu dole, že tento je značka v rámci rozpätia 202 00:14:22,970 --> 00:14:26,230 tag s triedou txt. 203 00:14:26,230 --> 00:14:29,610 >> Takže sa to dostane na náš prvá operácia, ktorá 204 00:14:29,610 --> 00:14:37,330 je doc.css rozpätie, čo je značka, ktorá Hľadám rámci všetkého tejto adresy URL. 205 00:14:37,330 --> 00:14:43,650 A potom .txt funguje podobne ako CSS robí, keď ste len písanie CSS 206 00:14:43,650 --> 00:14:49,630 v súboroch HTML strany zadaním triedu. 207 00:14:49,630 --> 00:14:57,980 Takže tento konkrétny operátor bude zadať span značku s triedou txt. 208 00:14:57,980 --> 00:15:02,800 A potom, keď som sa nechať priestor, to bude potom ísť v tomto tagu 209 00:15:02,800 --> 00:15:05,170 a potom nájsť tag jej rámci. 210 00:15:05,170 --> 00:15:10,750 >> Takže keď som len dať to terminál, mal by som 211 00:15:10,750 --> 00:15:21,630 byť schopní vidieť v podstate všetko, že je v rámci tohto rozpätia triedy txt. 212 00:15:21,630 --> 00:15:22,890 Takže dáme, že na cestách. 213 00:15:22,890 --> 00:15:25,870 214 00:15:25,870 --> 00:15:27,756 ruby Craigslist-škrabka. 215 00:15:27,756 --> 00:15:31,850 216 00:15:31,850 --> 00:15:37,250 A naozaj, že nám všetky tieto dáva tagy rôznych zoznamoch, ktoré 217 00:15:37,250 --> 00:15:40,400 sú na stránke Craigslist. 218 00:15:40,400 --> 00:15:45,670 >> Takže keď sa vrátime, môžeme obrátiť to do niečoho trochu užitočný. 219 00:15:45,670 --> 00:15:51,050 Možno, že chceme len tie odkazy. 220 00:15:51,050 --> 00:15:58,790 Vzhľadom k tomu, v rámci tejto značky, ja tiež majú na hypertextový odkaz dráhy 221 00:15:58,790 --> 00:16:00,590 že táto stránka ide. 222 00:16:00,590 --> 00:16:09,100 Takže keď sa pozriete na tento kód tu, čo budem robiť, je miesto CSS, 223 00:16:09,100 --> 00:16:12,380 Môžem ísť at_css. 224 00:16:12,380 --> 00:16:16,820 A to bude len dostať prvý prvok všetky tie veci. 225 00:16:16,820 --> 00:16:20,890 Takže ak by som mal na to, že sa v kód, ktorý som práve predtým preukázal, 226 00:16:20,890 --> 00:16:23,800 namiesto vracia všetkých Z toho by to jednoducho 227 00:16:23,800 --> 00:16:26,850 vráti prvý z nich. 228 00:16:26,850 --> 00:16:31,310 Tak to je to, ako sa operátor at_css funguje. 229 00:16:31,310 --> 00:16:39,460 >> Takže chceme ukladať cesta celú prvú tagu. 230 00:16:39,460 --> 00:16:47,430 A pretože nám dá je-- tak sme stále bude používať .css. 231 00:16:47,430 --> 00:16:53,830 Ale pretože to bude dať nás späť celá rada značiek, 232 00:16:53,830 --> 00:16:55,710 budeme prístup prvý prvok. 233 00:16:55,710 --> 00:17:01,700 Takže toto je ďalší spôsob, ktorý môžete prístup k akejkoľvek konkrétnej prvok, ak si 234 00:17:01,700 --> 00:17:04,810 majú celý rad prvkov ktorá je vrátená, 235 00:17:04,810 --> 00:17:11,930 pretože si môžete liečiť čokoľvek, .css sa vracia ako pole, v podstate. 236 00:17:11,930 --> 00:17:16,880 A potom budeme pre prístup k hypertext referencie atribútom tohto. 237 00:17:16,880 --> 00:17:24,810 >> Takže ak ste sa pozrieť, ak ste sa pozerali naozaj blízko tu, 238 00:17:24,810 --> 00:17:28,270 Ak ste práve v podstate sa pozrieť na adresného riadku, 239 00:17:28,270 --> 00:17:33,880 To je cesta, ktorú budete sa škrabanie. 240 00:17:33,880 --> 00:17:41,565 Takže keď sme jednoducho spustiť to znova, a uistite sa, že sme chytá. 241 00:17:41,565 --> 00:17:47,040 242 00:17:47,040 --> 00:17:48,300 Môžete skontrolovať doma. 243 00:17:48,300 --> 00:17:51,430 Toto vlastne zhoduje s týmto odkazom. 244 00:17:51,430 --> 00:17:55,950 >> Tak prečo môžeme chcieť použiť? 245 00:17:55,950 --> 00:17:57,870 Ak chcete škriabať stránky a má 246 00:17:57,870 --> 00:18:00,270 stránka odkazov, ako je Craigslist dôjde, 247 00:18:00,270 --> 00:18:03,210 chcieť ísť potom do každej z týchto odkazov 248 00:18:03,210 --> 00:18:05,120 a potom škrípanie Obsah, ktorý, čo 249 00:18:05,120 --> 00:18:08,520 je presne to, čo budeme robiť. 250 00:18:08,520 --> 00:18:11,660 >> Takže až budete mať cestu ako variabilný, ja už naozaj 251 00:18:11,660 --> 00:18:13,200 starostlivosť o tlači to. 252 00:18:13,200 --> 00:18:15,420 Ja len potrebujete uložiť ho ako premennú. 253 00:18:15,420 --> 00:18:20,980 A potom som si prístup k ďalšej strana rovnakým spôsobom pristupovať k 254 00:18:20,980 --> 00:18:22,260 doc na prvom mieste. 255 00:18:22,260 --> 00:18:25,920 S výnimkou URL, ideme použiť reťazec interpoláciu 256 00:18:25,920 --> 00:18:29,180 ako by som bol popisujúci Ruby skôr pripojiť 257 00:18:29,180 --> 00:18:32,010 cesta ku koncu koreňa. 258 00:18:32,010 --> 00:18:38,970 >> Tak čo to bude robiť, je to bude dať na cestu 259 00:18:38,970 --> 00:18:42,360 že som poškriabaný skôr a potom zase, že 260 00:18:42,360 --> 00:18:49,580 do novej položky, čo chcete volajte to-- first_listing, napríklad. 261 00:18:49,580 --> 00:18:52,900 Ale budem opustiť je na bode pre túto chvíľu, 262 00:18:52,900 --> 00:18:55,420 pretože to je to, čo som pomocou tu. 263 00:18:55,420 --> 00:19:02,900 >> Tak že som chcel získať popis prvý vysielania v Craigslist. 264 00:19:02,900 --> 00:19:04,740 Takže by som ísť sem dole. 265 00:19:04,740 --> 00:19:10,660 Chcel by som kliknite na Preskúmať prvok opäť, pretože toto je opis. 266 00:19:10,660 --> 00:19:14,350 Ja by som ísť sem a vidieť či nájdem, ako by som mohol 267 00:19:14,350 --> 00:19:16,530 môcť vyhľadávať pre túto jedinečnú značku. 268 00:19:16,530 --> 00:19:19,530 A v tomto prípade, že má ID, čo nás vedie 269 00:19:19,530 --> 00:19:26,810 na ďalší spôsob vyhľadávania tagy, čo je s hashtag. 270 00:19:26,810 --> 00:19:30,670 >> Takže pre triedy, môžete používate operátor bodky. 271 00:19:30,670 --> 00:19:38,610 Takže .txt udáva triedu txt, keďže, hash špecifikuje identifikátor. 272 00:19:38,610 --> 00:19:43,720 Takže v tomto prípade, značka je sekciu, a ID je postingbody. 273 00:19:43,720 --> 00:19:47,780 >> Tak to ide a zistí, first-- pretože sme 274 00:19:47,780 --> 00:19:51,200 použitím at_css-- to ide a nájde prvý prvok, ktorý 275 00:19:51,200 --> 00:19:57,180 príde s tag úseku a ID postingbody. 276 00:19:57,180 --> 00:20:02,636 A potom môžete pristupovať k textový prvok tejto položky sa vrátil s .Texty. 277 00:20:02,636 --> 00:20:06,230 A potom môžeme uložiť že v popise. 278 00:20:06,230 --> 00:20:09,370 >> Takže teraz, že máme variabilný opis, 279 00:20:09,370 --> 00:20:14,850 by sme mohli byť schopní urobiť, povedzme, I / O súboru. Takže I / O súboru v Ruby 280 00:20:14,850 --> 00:20:21,310 je veľmi podobný súboru I / O v jazyku C, kde sme sa otvoriť súbor. 281 00:20:21,310 --> 00:20:23,260 Mohli by sme do nej zapisovať. 282 00:20:23,260 --> 00:20:25,060 A potom budeme zatvorte tento súbor. 283 00:20:25,060 --> 00:20:29,660 >> Tak tu, sme len pomenovanie súboru, nejaké ľubovoľné premenné. 284 00:20:29,660 --> 00:20:33,120 Mohli by sme tiež len dať to tu. 285 00:20:33,120 --> 00:20:39,630 Máme premennú, že sme ukladanie súbor otvoriť ako s File.open. 286 00:20:39,630 --> 00:20:46,370 A my píšete do tohto súboru, takže sme ho otvoriť w operátorom. 287 00:20:46,370 --> 00:20:54,280 A potom dáme reťazec do súbor s operátorom .puts. 288 00:20:54,280 --> 00:20:58,310 A potom dáme premenné, ktoré sme chcú zapísať do súboru v to. 289 00:20:58,310 --> 00:21:00,200 A potom sme len zatvorte súbor. 290 00:21:00,200 --> 00:21:04,000 >> Takže ak budeme pokračovať a spustiť to, to by malo vytvoriť dokument 291 00:21:04,000 --> 00:21:10,840 s description.txt ktorý bude majú tento opis v ňom. 292 00:21:10,840 --> 00:21:14,015 Takže keď som bežať to-- no. 293 00:21:14,015 --> 00:21:17,520 294 00:21:17,520 --> 00:21:23,330 Je to produkoval textový súbor s, Dúfajme, že to isté. 295 00:21:23,330 --> 00:21:25,850 296 00:21:25,850 --> 00:21:33,290 Takže tam by mohol byť nový vyslanie že to príde, keď som hovoril. 297 00:21:33,290 --> 00:21:36,580 A skutočne to vyzerá, ako by tam bol. 298 00:21:36,580 --> 00:21:43,380 Takže keď ideme do tejto klasickej koleso, 1962 až 1966, ktorý sa zdá na zápas. 299 00:21:43,380 --> 00:21:45,620 A je to. 300 00:21:45,620 --> 00:21:51,250 >> Tak to je najzákladnejšie funkčnosť škrabanie. 301 00:21:51,250 --> 00:21:57,510 Mohli by sme mať miesto len písanie do tohto súboru, 302 00:21:57,510 --> 00:21:59,930 môžeme pridať veci do poľa. 303 00:21:59,930 --> 00:22:03,770 Takže ak Prehlasujem tri polia, názvu, ceny, a popis. 304 00:22:03,770 --> 00:22:06,310 305 00:22:06,310 --> 00:22:13,790 A my sme pôsobiaci na položku doc ​​teraz. 306 00:22:13,790 --> 00:22:16,940 Môžeme prejsť a nájsť všetky span.txt. 307 00:22:16,940 --> 00:22:21,710 A pamätajte si, to vráti pole všetkých položiek, ktoré nájde. 308 00:22:21,710 --> 00:22:27,300 A potom sa v Ruby, stačí použiť .each iterovat každú položku 309 00:22:27,300 --> 00:22:28,410 matice. 310 00:22:28,410 --> 00:22:31,330 A potom pre každú položku, Ja som jednoducho ísť na to nazvať 311 00:22:31,330 --> 00:22:34,620 odkaz, pretože to je podstate to, čo to je. 312 00:22:34,620 --> 00:22:46,830 >> Takže keď som dal každý link.css dot a.hdrlnk, je to vlastne bude odkaz 313 00:22:46,830 --> 00:22:58,280 a zistenia v rámci tohto odkazu iného HTML prvok a zodpovedajúce triedy. 314 00:22:58,280 --> 00:23:04,990 Takže ak si spomenieme, čo to bolo so span.txt, 315 00:23:04,990 --> 00:23:13,160 môžete See- dovoľte mi vrátiť sa real quick-- rámci span.txt 316 00:23:13,160 --> 00:23:17,490 Máme veľa ďalších tried. 317 00:23:17,490 --> 00:23:27,180 Takže vnútri span.txt hľadáme pre tag s triedou hdrlnk. 318 00:23:27,180 --> 00:23:29,890 Dovoľte mi teda len zistiť, že pre vás naozaj rýchlo. 319 00:23:29,890 --> 00:23:37,390 320 00:23:37,390 --> 00:23:42,850 >> Takže si môžete pozrieť tu, to je značka že je v rámci rozpätia triedy txt 321 00:23:42,850 --> 00:23:44,920 ktorá má triedy hdrlnk. 322 00:23:44,920 --> 00:23:47,610 A to je skutočne to, čo snažíme sa dostať. 323 00:23:47,610 --> 00:23:54,680 >> Takže sme teraz sa snaží ukladať všetky týchto väzieb vnútri titulu. 324 00:23:54,680 --> 00:23:59,545 A potom budeme tlačiť z každej z týchto odkazov. 325 00:23:59,545 --> 00:24:00,360 Nie, je mi ľúto. 326 00:24:00,360 --> 00:24:04,530 Chystáme sa vytlačiť cena každého z nich. 327 00:24:04,530 --> 00:24:09,350 Takže poďme bežať to naozaj rýchle a uvidíte, čo to robí. 328 00:24:09,350 --> 00:24:14,680 329 00:24:14,680 --> 00:24:17,720 >> Tak to proste v podstate šlo cez každého z odkazov 330 00:24:17,720 --> 00:24:27,310 naopak, prístup značku sa jedná, a potom vytiahol cenu. 331 00:24:27,310 --> 00:24:33,910 A to urobil preto, že po máte všetko v názve, 332 00:24:33,910 --> 00:24:37,260 sme práve uložené titul tam. 333 00:24:37,260 --> 00:24:40,180 Práve sme uložili odkaz v názve poľa. 334 00:24:40,180 --> 00:24:47,720 A v tomto pre prevádzku slučky, kde namiesto aby išiel do a.hdrlnk, 335 00:24:47,720 --> 00:24:50,490 hľadáme na span.price. 336 00:24:50,490 --> 00:24:56,500 Takže keď som si len naozaj rýchlo nájsť cena, ak si prezrieť prvok, 337 00:24:56,500 --> 00:25:00,610 uvidíte, že sa jedná o rozpätie s triedou ceny. 338 00:25:00,610 --> 00:25:04,670 A to je v podstate, ako dostávame cenu tam. 339 00:25:04,670 --> 00:25:10,040 >> Tak to je naozaj základný prípad škrabanie. 340 00:25:10,040 --> 00:25:13,550 To je to, ako sa dostať všetky prvky na strane 341 00:25:13,550 --> 00:25:16,510 že, povedzme, už viete, URL. 342 00:25:16,510 --> 00:25:21,050 >> Takže ak chceme získať trochu viac do hĺbky, 343 00:25:21,050 --> 00:25:23,950 môžeme škriabať stránok v rámci stránok. 344 00:25:23,950 --> 00:25:28,480 A pre tento príklad, budem bude výstup do súboru CSV. 345 00:25:28,480 --> 00:25:39,510 Takže som vyžadujúce csv tady pretože Ruby nie je, vo vnútri seba samého, 346 00:25:39,510 --> 00:25:42,350 majú funkcie len výstupné CSV súborov. 347 00:25:42,350 --> 00:25:45,030 Tak to je super jednoduché. 348 00:25:45,030 --> 00:25:48,710 Dovoľte mi ísť na ďalšie. 349 00:25:48,710 --> 00:25:51,640 350 00:25:51,640 --> 00:25:57,170 Kryté sme súbor I / O. Tak toto je podobné, ako je to v C. 351 00:25:57,170 --> 00:26:00,870 A predtým, než prejdeme k Kimono, Budem len ukázať vám naozaj rýchlo, ako 352 00:26:00,870 --> 00:26:02,790 škrípanie miest v pamiatok. 353 00:26:02,790 --> 00:26:10,040 >> Tak sme sa už naučili, ako vyhlásiť pole v Ruby. 354 00:26:10,040 --> 00:26:13,280 Takže som len vyhlasujúce banda ľubovoľných polí 355 00:26:13,280 --> 00:26:16,310 že budem ukladanie dát vnútri. 356 00:26:16,310 --> 00:26:20,680 doc pracuje rovnakým spôsobom ako tomu bolo v predchádzajúcom súbore. 357 00:26:20,680 --> 00:26:23,580 Ideme, hľadanie každý z span.txt rokov. 358 00:26:23,580 --> 00:26:25,040 Už vieme, že. 359 00:26:25,040 --> 00:26:32,130 To je nádoba, v ktorej každý odkaz má všetky údaje, ktoré chceme. 360 00:26:32,130 --> 00:26:40,800 >> Tak tu to, čo robíme, je pre každého odkaz na span class txt, ideme dovnútra 361 00:26:40,800 --> 00:26:45,720 a my sme nájsť značku, nájdenie prvý prvok, ktorý. 362 00:26:45,720 --> 00:26:49,937 Pamätajte si, že CSS vráti pole, takže môžete nielen pristupovať, ako je. 363 00:26:49,937 --> 00:26:51,520 Ideme nájsť prvý prvok. 364 00:26:51,520 --> 00:26:56,430 Aj v prípade, že je to pole jedného položka, budete musieť použiť túto syntax, 365 00:26:56,430 --> 00:26:58,800 a potom vytiahnite atribút href. 366 00:26:58,800 --> 00:27:01,800 >> Tak sme to urobili skôr. 367 00:27:01,800 --> 00:27:04,440 Tak by to malo vyzerať povedome. 368 00:27:04,440 --> 00:27:14,330 A tak teraz máme rad zvané cesty všetkých našich odkazov 369 00:27:14,330 --> 00:27:16,590 že budeme chcieť použiť. 370 00:27:16,590 --> 00:27:21,350 Takže ak máme túto radu all z ciest, ktoré chceme použiť, 371 00:27:21,350 --> 00:27:26,840 potom môžeme vytvoriť položku pre každého z týchto strán, keď sme sa otvoriť túto stránku. 372 00:27:26,840 --> 00:27:31,150 Tak, ako sme tiež videli na syntaxe pred, kde 373 00:27:31,150 --> 00:27:37,450 robí reťazec interpoláciu s cestou tu, tak syntax je len pre cestu. 374 00:27:37,450 --> 00:27:41,450 A mohol by som menovať to variabilný akýkoľvek ľubovoľný názov. 375 00:27:41,450 --> 00:27:43,070 >> To je dôležitý. 376 00:27:43,070 --> 00:27:46,650 Toto je pole, že budete byť prístup každý prvok. 377 00:27:46,650 --> 00:27:52,400 Ale keď hovoríte, že pre cestu v cestách, to znamená, že pre každý prvok v cestách, 378 00:27:52,400 --> 00:27:55,150 nazývať to cesta, a použiť. 379 00:27:55,150 --> 00:27:59,266 To je v podstate ako keď vás urobiť pre slučku a použiť int i. 380 00:27:59,266 --> 00:28:04,000 Takže môžete zaobchádzať ceste ako premenná, ktorá je postupne. 381 00:28:04,000 --> 00:28:07,820 >> A potom na každom z nich, ísť do každej z týchto odkazov. 382 00:28:07,820 --> 00:28:11,710 Vzhľadom k tomu, že sme ich ukladanie v položke stránky, takže sme vytvoriť novú stránku zakaždým 383 00:28:11,710 --> 00:28:13,330 k nemu dostaneme. 384 00:28:13,330 --> 00:28:20,560 A potom sa v tejto novej stránky, nájsť span.postingtitletext, span.price, 385 00:28:20,560 --> 00:28:22,240 a potom časť # postingbody. 386 00:28:22,240 --> 00:28:28,430 Už sme sa vzťahuje oddiel # postingbody keď sme sa pozreli na popisu. 387 00:28:28,430 --> 00:28:34,890 >> Takže môžeme ísť pozrieť na Craigslist poštou, ak ste práve pri pohľade na titul, 388 00:28:34,890 --> 00:28:38,810 môžete vidieť tu, span postingtitletext. 389 00:28:38,810 --> 00:28:41,390 A to je dôvod, prečo je to tam. 390 00:28:41,390 --> 00:28:49,120 A potom za cenu, môžete pristupovať s span class ceny. 391 00:28:49,120 --> 00:28:54,480 >> Tak sme tiež možno by mohol Chcete uložiť URL. 392 00:28:54,480 --> 00:28:58,580 Tak sme si len spustiť tento znova, uložte ho v poli, 393 00:28:58,580 --> 00:29:01,150 pretože ak hľadáte na Craigslist, že ste 394 00:29:01,150 --> 00:29:05,290 pravdepodobne bude chcieť cestu k, ak Vidíte niečo, čo vás zaujíma, 395 00:29:05,290 --> 00:29:06,620 vrátiť sa na tomto mieste. 396 00:29:06,620 --> 00:29:10,480 Takže si len chcete uložiť URL pre odkazy záujmu. 397 00:29:10,480 --> 00:29:13,840 398 00:29:13,840 --> 00:29:19,630 >> To je len v podstate ďalšie syntax pre pre sláčiky. 399 00:29:19,630 --> 00:29:26,360 Mohol by som si paths.each miesto , Pre cesty v cestách s indexom. 400 00:29:26,360 --> 00:29:31,280 A to je syntaxe Ruby for-- Cesta je to, čo sme urobili tu, 401 00:29:31,280 --> 00:29:33,920 deklarovanie premennej pre každú položku. 402 00:29:33,920 --> 00:29:38,540 A index sa chová ako Aj v C pre slučky. 403 00:29:38,540 --> 00:29:41,280 Takže môžete sledovať z toho, čo je index. 404 00:29:41,280 --> 00:29:45,200 >> Takže tu je len málo vhodné vec 405 00:29:45,200 --> 00:29:46,950 , Keď vediete škrabku. 406 00:29:46,950 --> 00:29:50,580 Ak ste škrabanie stovky stránok, aby sa uistil, že to nie je visí, 407 00:29:50,580 --> 00:29:53,320 to bude len výstup, Ja som prístup na túto stránku, 408 00:29:53,320 --> 00:29:55,960 a uistiť sa, že je to stále pokračuje. 409 00:29:55,960 --> 00:29:59,250 Ale pre naše účely, pretože tam je sto položiek, 410 00:29:59,250 --> 00:30:08,000 Chystám sa prístup iba tri z nich tak, že nemáme čas vypršal tu. 411 00:30:08,000 --> 00:30:13,040 >> Ale skôr, než sa dostaneme k tomu, ja som len chystá ukázať vám naozaj rýchlo, 412 00:30:13,040 --> 00:30:16,940 Budem výstupu titul, cena, popis a URL 413 00:30:16,940 --> 00:30:19,600 každého z odkazov, ktoré som Zaškrabávanie. 414 00:30:19,600 --> 00:30:23,720 A potom je to len Syntax pre knižnicu CSV. 415 00:30:23,720 --> 00:30:25,240 Otvorenie CSV. 416 00:30:25,240 --> 00:30:27,070 To je to, čo budem hovoriť. 417 00:30:27,070 --> 00:30:29,430 Otvorte ho s pre zápis do. 418 00:30:29,430 --> 00:30:33,830 A potom CSV bude súbor, ktorý ste zadaním všetko do. 419 00:30:33,830 --> 00:30:37,800 To je len šek pre zdravý rozum aby som vedel, že to beží. 420 00:30:37,800 --> 00:30:41,240 A toto je môj zdravý rozum kontrola vedieť, že je to dokončené. 421 00:30:41,240 --> 00:30:46,670 Takže som uvedenie titulu na riadku v CSV, cena, url, opis, 422 00:30:46,670 --> 00:30:49,420 všetko do riadkov v CSV. 423 00:30:49,420 --> 00:30:53,410 >> Takže keď ideme a beh tento now-- a ja som 424 00:30:53,410 --> 00:31:04,710 uistite sa, že som namiesto toho zachránil to-- toho len výstup je ku koncovke, 425 00:31:04,710 --> 00:31:09,750 by sme mali mať CSV Súbor, ktorý je produkovaný. 426 00:31:09,750 --> 00:31:13,500 Takže tu môžeme vidieť CSV Súbor, ktorý sa vyrába. 427 00:31:13,500 --> 00:31:19,330 Toto je výstup z scape, že som bežal. 428 00:31:19,330 --> 00:31:23,030 Ako si môžete pozrieť tu, Prístup k stránky 0, 1, 2, 3. 429 00:31:23,030 --> 00:31:27,400 Jedná sa o tituly, ceny, popisy. 430 00:31:27,400 --> 00:31:31,710 A ak sa pozrieme na tomto formáte CSV súbor, ktorý sme generované, 431 00:31:31,710 --> 00:31:35,700 si môžete pozrieť tu jeho výstup. 432 00:31:35,700 --> 00:31:40,350 To nie je Excel, takže to nie je formátovaný v riadkoch a stĺpcoch. 433 00:31:40,350 --> 00:31:45,140 Ale môžete si predstaviť, ako to by mohlo byť vo formáte. 434 00:31:45,140 --> 00:31:47,740 >> CSV znamená hodnoty oddelené čiarkami. 435 00:31:47,740 --> 00:31:50,090 Takže si viete predstaviť to môže byť niekoľko. 436 00:31:50,090 --> 00:31:54,700 A každá čiarka by ukazujú samostatný stĺpec. 437 00:31:54,700 --> 00:32:00,010 Len slovo caution-- niekedy, že ste 438 00:32:00,010 --> 00:32:02,260 škrabanie veci s množstvom čiarkami. 439 00:32:02,260 --> 00:32:05,100 Takže ak ste výstup že do súboru CSV, 440 00:32:05,100 --> 00:32:10,340 To nemusí výstup spôsob, ako si možno myslíte. 441 00:32:10,340 --> 00:32:16,770 >> Tak to je v podstate všetko tam je škrabanie základné HTML 442 00:32:16,770 --> 00:32:20,110 stránky s Nokogiri. 443 00:32:20,110 --> 00:32:26,000 >> Takže Internetom inovatívne, ako to má prísť 444 00:32:26,000 --> 00:32:33,220 s viac automatizované a GUI verzie, aj keď menej robustné 445 00:32:33,220 --> 00:32:35,540 verzia škrabanie rôznych internetových stránkach. 446 00:32:35,540 --> 00:32:39,060 A pre naše účely Budem demonštrovať 447 00:32:39,060 --> 00:32:42,920 rozšírenie Chrome s názvom kimono. 448 00:32:42,920 --> 00:32:46,690 A všetko, čo musíte urobiť, je pri navigácii na stránku, ktorú chcete škriabať. 449 00:32:46,690 --> 00:32:48,590 Ak kliknete na pole záujmu. 450 00:32:48,590 --> 00:32:51,510 Môžete kalibrovať poľa, preto, že sa automaticky 451 00:32:51,510 --> 00:32:54,360 zistiť, čo si myslia, chcete byť škrabanie, 452 00:32:54,360 --> 00:32:56,280 a potom stačí len vytvoriť API. 453 00:32:56,280 --> 00:33:03,700 >> Takže ak by sme mali demonštrovať to na Craigslist, že v skutočnosti by to fungovať. 454 00:33:03,700 --> 00:33:08,290 A to je to, čo som šiel späť do hovorí o to nie je tak robustný. 455 00:33:08,290 --> 00:33:10,320 Má problémy s vytvorením API. 456 00:33:10,320 --> 00:33:13,400 Ale ako demonštrácia o tom, čo to urobí, 457 00:33:13,400 --> 00:33:17,460 Ak nainštalujete rozšírenie Chrome, všetko, čo urobiť, je na neho kliknete. 458 00:33:17,460 --> 00:33:21,750 To Kimonofies stránku, a potom vás kliknite na vec, ktorú chcete skript. 459 00:33:21,750 --> 00:33:24,480 >> Takže ak by som mal kliknite na že by bolo zdôrazniť 460 00:33:24,480 --> 00:33:28,130 to, čo si myslia, že to chcem byť oškrabaním túto stránku. 461 00:33:28,130 --> 00:33:33,660 Takže som možno volať toto výpisy. 462 00:33:33,660 --> 00:33:36,430 To je, koľko položiek sa Vybrala som. 463 00:33:36,430 --> 00:33:43,810 A ja si len potvrdiť alebo vyvrátiť niektoré z ďalších navrhovaných výpisy 464 00:33:43,810 --> 00:33:49,600 aby si ho pridať do čo sa bude poškriabaný. 465 00:33:49,600 --> 00:33:52,330 >> Takže teraz môžeme vidieť, že je vybralo sto položiek. 466 00:33:52,330 --> 00:33:58,060 Ak chcem mať ďalšie pole, ktoré som Tiež škrípanie čo súvisí s tým 467 00:33:58,060 --> 00:34:02,540 že chcem, aby škrípanie cenu rovnako, potom môžem urobiť to isté. 468 00:34:02,540 --> 00:34:06,190 469 00:34:06,190 --> 00:34:11,550 >> Takže tu je ukážka toho, ako je to oveľa menej robustné, pretože teraz je to 470 00:34:11,550 --> 00:34:15,050 Miesto vyzdvihnutia mesto toho len cena, ktorú chcem. 471 00:34:15,050 --> 00:34:16,989 A teraz je to zdvihol 200 vecí. 472 00:34:16,989 --> 00:34:19,880 Môžete sa vrátiť a odstrániť. 473 00:34:19,880 --> 00:34:21,449 Môžete skúsiť znova. 474 00:34:21,449 --> 00:34:24,250 Ale žiadne záruky. 475 00:34:24,250 --> 00:34:29,909 To je, ako to funguje občas. 476 00:34:29,909 --> 00:34:32,969 Ako vidíte tu, teraz sa hovorí, že 96 až sem. 477 00:34:32,969 --> 00:34:37,000 Je to zdvihol väčšinu odkazov že chcete, aby škrípanie, ale nie 478 00:34:37,000 --> 00:34:39,280 nutne všetky z nich. 479 00:34:39,280 --> 00:34:43,909 >> Ďalším užitočným nástrojom Kimono hoci ich môžete ísť na pokročilými funkciami 480 00:34:43,909 --> 00:34:47,980 tu, choďte na Rozšírené a to vám ukáže, 481 00:34:47,980 --> 00:34:53,139 rozpis jedinečný spôsob, ako získať prístup k HTML 482 00:34:53,139 --> 00:34:54,909 tagy, ktoré chcete škriabať. 483 00:34:54,909 --> 00:35:01,450 Takže pre výpisy, keď sa pozriete na tú, ak máte prístup div p span span, 484 00:35:01,450 --> 00:35:06,030 môžete skutočne stačí použiť to do Nokogiri kódu, 485 00:35:06,030 --> 00:35:10,780 kde predtým, než sme sa span.txt pre prístup k každý z výpisov. 486 00:35:10,780 --> 00:35:13,270 Ak Chcem len text v výpisy, 487 00:35:13,270 --> 00:35:18,950 Mohol by som vstup div priestor p space space span span priestor a, 488 00:35:18,950 --> 00:35:21,570 a to by dosiahnutie rovnakého účinku. 489 00:35:21,570 --> 00:35:26,320 A pre tých z vás, ktorí majú záujem v pomocou regulárnych výrazov, 490 00:35:26,320 --> 00:35:31,670 to sa stane aj vám pravidelný Expresie druh reťazca na vstupe 491 00:35:31,670 --> 00:35:34,900 nájsť veci sa snažíte nájsť. 492 00:35:34,900 --> 00:35:44,130 >> Takže je tu ďalšie zaujímavé funkcie kimono, kde si môžete na stránky, 493 00:35:44,130 --> 00:35:47,780 ktorá je nielen môžem škriabať výsledky tejto stránke, 494 00:35:47,780 --> 00:35:50,890 Môžem kliknúť na tento malý Tlačidlo tu, stránkovanie, 495 00:35:50,890 --> 00:35:55,580 zadať tlačidlo, ktoré by vziať ma na ďalšiu stránku, 496 00:35:55,580 --> 00:35:59,500 a potom to bude len viem, že to môže opakovať na ďalšiu stránku, 497 00:35:59,500 --> 00:36:04,120 a potom škrípanie všetky the-- tak dlho ako je to rovnaký formát course-- 498 00:36:04,120 --> 00:36:06,110 scape všetky tie odkazy rovnako. 499 00:36:06,110 --> 00:36:15,230 >> Takže pretože Kimono nechce práca s Craigslist, čo sme urobili 500 00:36:15,230 --> 00:36:19,790 Je som Kimonofied Harvard Crimson. 501 00:36:19,790 --> 00:36:29,380 Ja som vytiahol niektoré z druhu top Najlepšie články, potvrďte tu. 502 00:36:29,380 --> 00:36:33,090 Povedzme, že všetky z nich. 503 00:36:33,090 --> 00:36:35,830 Ja som zostavil toto rozhranie API pre vás dopredu. 504 00:36:35,830 --> 00:36:38,990 Ale inak to, čo by ste robili Je by ste práve kliknite na tlačidlo Hotovo. 505 00:36:38,990 --> 00:36:40,940 Zadajte vaše údaje API. 506 00:36:40,940 --> 00:36:45,260 Nastavte ju buď automatické alebo ručné, kraul. 507 00:36:45,260 --> 00:36:48,460 Takže ste mohli aktualizovať svoj Údaje každých 15 minút, 508 00:36:48,460 --> 00:36:50,330 týždenné, denné, čo chcete. 509 00:36:50,330 --> 00:36:51,160 Pomenujte API. 510 00:36:51,160 --> 00:36:52,790 Vytvorte API. 511 00:36:52,790 --> 00:36:58,460 K vášmu prospechu, som vytvorený Crimson už titulnej strane API. 512 00:36:58,460 --> 00:37:02,480 >> Takže si jednoducho vytvoriť Účet na kimono, a to 513 00:37:02,480 --> 00:37:06,240 bude ukladať všetky svoje API pre vás. 514 00:37:06,240 --> 00:37:10,330 Takže v podstate, že to všetko tvoja samostatné rôzne odreniny. 515 00:37:10,330 --> 00:37:18,250 >> Takže ak sa pozrieme tu, to je Názory odkazy, ktoré som zhromaždených. 516 00:37:18,250 --> 00:37:21,290 Jedná sa o predstavoval odkazy, ktoré som zhromaždených. 517 00:37:21,290 --> 00:37:24,090 A títo sú najčítanejší odkazy, ktoré som zhromaždených 518 00:37:24,090 --> 00:37:27,120 Z tohto posledného API stvol. 519 00:37:27,120 --> 00:37:30,790 >> Takže ak si môžete pozrieť tu, títo boli by predstavoval, 520 00:37:30,790 --> 00:37:34,130 Tie by mali byť názory, ktorý je v tomto príklade, 521 00:37:34,130 --> 00:37:38,150 Ja som ich kombinovať všetky do jednej kolekcie. 522 00:37:38,150 --> 00:37:42,780 Ale ak si len hrať sa s ním trochu, môžete rozdeliť to 523 00:37:42,780 --> 00:37:45,090 a rozdeliť ho však Ak chcete tak dlho, 524 00:37:45,090 --> 00:37:47,520 ako formátovanie sa mierne líšia. 525 00:37:47,520 --> 00:37:51,320 >> Len hrať sa s toto, kraul nastavenie, jeden z tienisté stránky 526 00:37:51,320 --> 00:37:58,120 sa môžete len prechádzať hore 25 strán naraz. 527 00:37:58,120 --> 00:38:00,430 To je jeden z limitujúcich faktorov. 528 00:38:00,430 --> 00:38:03,060 Ale tu, ak nastavíte na ručné kraul, toto 529 00:38:03,060 --> 00:38:06,100 je, ako môžete povedať, že k aktualizácii svojich informácií. 530 00:38:06,100 --> 00:38:11,010 A tu môžete vidieť históriu prehliadania všetkého, čo ste liezol. 531 00:38:11,010 --> 00:38:16,000 A vy môžete ísť späť, prihláste sa, hrať sa so všetkými rôznymi spôsobmi 532 00:38:16,000 --> 00:38:20,340 ktoré môžete upravovať a používať vaše dáta. 533 00:38:20,340 --> 00:38:24,580 >> Kimono môže byť nastavený tak, aby škrípanie odkazov v rámci odkazy. 534 00:38:24,580 --> 00:38:29,700 A vy by ste tak urobiť tým, že najprv škrabanie zoznam odkazov, 535 00:38:29,700 --> 00:38:35,390 a potom sa pomocou tejto API vo forme skočiť bod pre ďalší API 536 00:38:35,390 --> 00:38:36,710 že ste vytvoriť skript. 537 00:38:36,710 --> 00:38:42,040 Ale to je zložitejšie, než čo budeme sa dostať do dnes. 538 00:38:42,040 --> 00:38:44,270 >> Tak to je Kimono. 539 00:38:44,270 --> 00:38:46,980 Porozprávame sa o výhodách a zápory Nokogiri a kimono. 540 00:38:46,980 --> 00:38:50,380 >> Nokogiri, je to naozaj rýchlo. 541 00:38:50,380 --> 00:38:51,640 Je to ľahké otestovať. 542 00:38:51,640 --> 00:38:55,910 Stačí si len stavajú nič konzoly, ľahko konfigurovať. 543 00:38:55,910 --> 00:39:00,400 Môžete sa rozhodnúť, čo presne Ak chcete šrot a obchod. 544 00:39:00,400 --> 00:39:02,060 Neexistujú žiadne obmedzenia stránok. 545 00:39:02,060 --> 00:39:08,010 Vlastne som používal to, aby škrípanie, ako 1800 juhoafrických webové stránky školy 546 00:39:08,010 --> 00:39:10,870 e-mailov na stáž že som to urobil. 547 00:39:10,870 --> 00:39:16,060 >> Tak to je možné, aj keď osvedčených postupov by bolo rozdeliť skript. 548 00:39:16,060 --> 00:39:19,310 Pretože ak to zlyhá, potom nechcete dostať nič. 549 00:39:19,310 --> 00:39:22,790 Ale ak si stovku, Možno 200 strán v čase, 550 00:39:22,790 --> 00:39:27,840 potom máte nejaké šancu aspoň ako sa to po častiach, a to najmä 551 00:39:27,840 --> 00:39:30,280 ak máte zlé pripojenie k internetu. 552 00:39:30,280 --> 00:39:32,720 >> Bohužiaľ to môže škriabať len HTML. 553 00:39:32,720 --> 00:39:35,190 Takže ak máte dynamicky namáhané pages-- 554 00:39:35,190 --> 00:39:39,480 a ja vám ukážem príklad ako kajaku v A second-- 555 00:39:39,480 --> 00:39:42,270 Nokogiri bohužiaľ Nemožno škriabať to. 556 00:39:42,270 --> 00:39:45,700 >> Ale Kimono je tiež jednoduché použitie. 557 00:39:45,700 --> 00:39:48,330 Ako ste videli, že je to v podstate bod a kliknite na tlačidlo. 558 00:39:48,330 --> 00:39:50,260 To môže škriabať JavaScript. 559 00:39:50,260 --> 00:39:53,790 Bohužiaľ, tam je maximum na koľko stránok môžete škriabať. 560 00:39:53,790 --> 00:39:55,710 Niekedy je to trochu ťažko konfigurovať. 561 00:39:55,710 --> 00:39:57,240 To dostane zmätený. 562 00:39:57,240 --> 00:40:00,920 Ale je to určite niečo, aby zvážila 563 00:40:00,920 --> 00:40:05,930 ak nie ste sa snaží mať Super robustný udržiavateľný škrabanec. 564 00:40:05,930 --> 00:40:09,010 Ak si len chcete dostať všetko sa rýchlo preč stránky, 565 00:40:09,010 --> 00:40:10,970 potom Kimono je naozaj dobrý nástroj na použitie. 566 00:40:10,970 --> 00:40:16,490 A ako som sa zmienil predtým, je tu pokročilý rys Kimono 567 00:40:16,490 --> 00:40:19,260 že, ako ukazuje Prístup k jedinečnej HTML 568 00:40:19,260 --> 00:40:24,210 prvok, čo je super užitočné aj Ak pracujete v Nokogiri. 569 00:40:24,210 --> 00:40:30,370 >> Takže keď ideme na stránky Kayak, pre Napríklad môžete vidieť, že je-- 570 00:40:30,370 --> 00:40:31,750 alebo možno nie je vidieť. 571 00:40:31,750 --> 00:40:38,910 Ale keď ti ukážem URL pre Kayak, to vlastne je len zdrojom adresa URL. 572 00:40:38,910 --> 00:40:43,800 Toto je URL predchádzajúcej k bytiu modifikovaná akýmikoľvek skriptoch JavaScript 573 00:40:43,800 --> 00:40:45,350 že majú deje. 574 00:40:45,350 --> 00:40:52,420 A bude to vyzerať inak od kontroly prvok. 575 00:40:52,420 --> 00:40:55,940 >> Takže ak si prejsť a vy Zápas sa Skontrolujte Element 576 00:40:55,940 --> 00:41:00,340 Kód do zdrojového kódu, je to v skutočnosti bude inak. 577 00:41:00,340 --> 00:41:05,640 A to je v podstate dôvod, prečo Nokogiri Nemožno škriabať dynamicky načítané stránky. 578 00:41:05,640 --> 00:41:08,810 Vzhľadom k tomu, Nokogiri je škrabanie zdroj URL, 579 00:41:08,810 --> 00:41:16,310 keďže, Kimono je vlastne škrabanie, čo ste v podstate 580 00:41:16,310 --> 00:41:18,260 videnie vo vybraných Element. 581 00:41:18,260 --> 00:41:23,880 >> Takže keď som sa prejsť a ja pokúsiť Kimonofy Kajak, 582 00:41:23,880 --> 00:41:26,600 Ja si skutočne prejsť a vyberte cenu. 583 00:41:26,600 --> 00:41:32,360 Je to trochu ťažšie, a v tomto prípade, je to 584 00:41:32,360 --> 00:41:36,600 v skutočnosti vidieť túto cenu za odlišné od nich. 585 00:41:36,600 --> 00:41:41,110 Takže vzhľadom k tomu, môžete configure-- alebo ak to nebolo dynamicky načítaný, 586 00:41:41,110 --> 00:41:43,620 môžete konfigurovať Nokogiri získať všetky tieto. 587 00:41:43,620 --> 00:41:48,230 >> Vzhľadom k tomu, formátovanie je mierne odlišné pre tento záznam 588 00:41:48,230 --> 00:41:51,280 ako to je v porovnaní so zvyškom z nich, a môžete vidieť tu 589 00:41:51,280 --> 00:41:54,830 je to vlastne preč a vybrané všetky ceny letu. 590 00:41:54,830 --> 00:42:01,200 Možno, že chcem vybrať Doba letu rovnako. 591 00:42:01,200 --> 00:42:04,700 A môžem prejsť a nejako nastaviť, ktoré. 592 00:42:04,700 --> 00:42:06,950 Nechcem to. 593 00:42:06,950 --> 00:42:10,200 Chcem len čas na ďalší let je. 594 00:42:10,200 --> 00:42:17,030 A potom sa po niekoľkých z nich prechádza, dostane obraz. 595 00:42:17,030 --> 00:42:19,080 Takže Kimono je celkom šikovný. 596 00:42:19,080 --> 00:42:21,900 Je to jednoducho nie je tak robustný. 597 00:42:21,900 --> 00:42:26,710 >> Tam sú niektoré ďalšie alternatívy, ktoré môžete použiť. 598 00:42:26,710 --> 00:42:31,600 A ja ti ukážem je tu. 599 00:42:31,600 --> 00:42:35,790 Ak ste pohodlnejšie Python miesto Ruby možno, 600 00:42:35,790 --> 00:42:39,290 K dispozícii je knižnica volal Krásne polievka. 601 00:42:39,290 --> 00:42:40,430 Môžete ju využiť. 602 00:42:40,430 --> 00:42:42,270 Je to veľmi podobné Nokogiri. 603 00:42:42,270 --> 00:42:44,620 To má niekoľko ďalších funkcií. 604 00:42:44,620 --> 00:42:52,160 Môžete si nájsť tag HTML a potom sa presunúť do pohybu do strán. 605 00:42:52,160 --> 00:42:54,690 >> Tam je PyQt. 606 00:42:54,690 --> 00:42:57,820 To môže v skutočnosti škriabať dynamický miesta, pretože je to niečo 607 00:42:57,820 --> 00:43:02,540 je WebKit, ktorý predstiera, že je prehliadač bez toho by vlastne 608 00:43:02,540 --> 00:43:03,670 že je prehliadač. 609 00:43:03,670 --> 00:43:07,490 Tak to by sa čakať na všetky JavaScript načítať prvý, a potom 610 00:43:07,490 --> 00:43:09,560 ísť a pokúsiť sa škrípanie miesto. 611 00:43:09,560 --> 00:43:13,560 >> Ak chcete držať s Ruby, budete môže ísť o úroveň vyššie od Nokogiri. 612 00:43:13,560 --> 00:43:17,650 Môžete použiť Kapybara s poltergeist obal. 613 00:43:17,650 --> 00:43:22,910 A to môže vlastne v podstate to isté, 614 00:43:22,910 --> 00:43:26,610 as PyQt, čo je, že je WebKit. 615 00:43:26,610 --> 00:43:29,610 To čaká na JavaScript načítať ako prvý. 616 00:43:29,610 --> 00:43:33,340 Ak zložito manipulovať s ním dosť, môžete dokonca si to kliknite na veci. 617 00:43:33,340 --> 00:43:42,780 >> Takže ak tam je odkaz, ktorý nie je klasickým href, kde 618 00:43:42,780 --> 00:43:46,350 cesta je ľahko prístupné, a je to nejaký JavaScript vec, ktorá detekuje 619 00:43:46,350 --> 00:43:49,490 kliknutí, môžete skutočne urobiť. 620 00:43:49,490 --> 00:43:53,430 Čím viac populárne knižnica simulovať užívateľa 621 00:43:53,430 --> 00:43:56,390 je v JavaScriptu, ktorý je PhantomJS. 622 00:43:56,390 --> 00:44:01,010 To môže samozrejme škriabať dynamický weby, pretože toto je nevyhnutne 623 00:44:01,010 --> 00:44:04,270 predstierať, že Chrome bez užívateľského rozhrania. 624 00:44:04,270 --> 00:44:09,970 >> A potom, samozrejme najviac robustný, ale najpomalší variant, 625 00:44:09,970 --> 00:44:13,260 je automatizácia Selén prehliadač. 626 00:44:13,260 --> 00:44:15,550 A bohužiaľ, vy nebude 627 00:44:15,550 --> 00:44:19,770 schopní to urobiť priamo vo Vašom CS50 IDE. 628 00:44:19,770 --> 00:44:24,140 Vzhľadom k tomu, v podstate čo to urobí, je, že topánky svoj Chrome, 629 00:44:24,140 --> 00:44:27,090 Firefox, bez ohľadu na prehliadač ktorý chcete použiť, 630 00:44:27,090 --> 00:44:32,570 a sleduje možná myš pohyb, čo napíšete, 631 00:44:32,570 --> 00:44:35,170 a to tak nejako tento proces automatizuje. 632 00:44:35,170 --> 00:44:42,070 Takže to bol vyvinutý ako druh Webové stránky testovanie nástroj pre automatizáciu. 633 00:44:42,070 --> 00:44:45,910 Ale mnoho ľudí používa Selén škriabať webové stránky 634 00:44:45,910 --> 00:44:49,990 ktoré inak majú Veľa obtiažnosti škrabanie 635 00:44:49,990 --> 00:44:53,700 s niektorými z týchto iných, rýchlejší nástroje. 636 00:44:53,700 --> 00:44:57,530 >> Tak to je všetko, čo mám pre web škrabanie. 637 00:44:57,530 --> 00:44:58,090 Bav sa. 638 00:44:58,090 --> 00:45:01,762 639 00:45:01,762 --> 00:45:02,680 >> Divákov: Otázka. 640 00:45:02,680 --> 00:45:04,016 >> Robert Krábek: Áno. 641 00:45:04,016 --> 00:45:12,840 >> Divákov: Existuje mechanizmus pre hash webové stránky, takže si mohol v podstate 642 00:45:12,840 --> 00:45:14,207 prejsť neskôr. 643 00:45:14,207 --> 00:45:15,040 ROBERT Krábek: Jo. 644 00:45:15,040 --> 00:45:21,530 Takže sme dať v našej Napríklad pre oboch, 645 00:45:21,530 --> 00:45:24,980 dáme celé webové stránky do doc. 646 00:45:24,980 --> 00:45:31,260 A tak by ste mohli skutočne len vziať premenná doc a zapísať ho do súboru. 647 00:45:31,260 --> 00:45:35,490 Takže keď som chcel, mohol by som zapísať ju ako súbor HTML, 648 00:45:35,490 --> 00:45:39,280 a potom sa namiesto použitia OpenURI a žiadosť cURL, 649 00:45:39,280 --> 00:45:43,520 Potom som mohol len otvoriť doc HTML a potom hľadať to. 650 00:45:43,520 --> 00:45:47,960 >> Divákov: Ale môžete zachovať druh online zážitku 651 00:45:47,960 --> 00:45:48,930 zatiaľ čo vy offline. 652 00:45:48,930 --> 00:45:51,013 Napríklad. keď ste lietanie po dobu niekoľkých hodín, 653 00:45:51,013 --> 00:45:54,070 Chcem sa v podstate archív celé webové stránky. [Nepočuteľných] 654 00:45:54,070 --> 00:45:58,780 >> ROBERT Krábek: Jo, to je exactly-- tak doslova, čo to robí 655 00:45:58,780 --> 00:46:03,010 Je to berie všetko že by to bolo na tejto adrese URL. 656 00:46:03,010 --> 00:46:11,280 Takže keď sme bežali lokne, to je Vzhľadom ku všetkým týmto HTML, 657 00:46:11,280 --> 00:46:14,590 a to uložením vnútri premenné doc. 658 00:46:14,590 --> 00:46:17,290 Takže si môžete robiť, čo chcete urobiť s doc. 659 00:46:17,290 --> 00:46:18,575 Môžete výstup do súboru. 660 00:46:18,575 --> 00:46:19,950 Divákov: Ale nie je to prepojené. 661 00:46:19,950 --> 00:46:20,780 To nie je dynamický. 662 00:46:20,780 --> 00:46:22,770 To nie je rekurzívne, že jo? 663 00:46:22,770 --> 00:46:24,016 Vieš, čo tým myslím? 664 00:46:24,016 --> 00:46:28,359 Snažím sa v podstate akýsi hash celé webové stránky na mojom pevnom disku 665 00:46:28,359 --> 00:46:31,150 tak, že by som mohol v podstate to po dobu niekoľkých hodín bez pripojenia k internetu. 666 00:46:31,150 --> 00:46:32,025 >> ROBERT Krábek: Správne. 667 00:46:32,025 --> 00:46:37,140 Takže keď som had-- tak kde je môj súbor I / O? 668 00:46:37,140 --> 00:46:47,766 Tak toto je súbor I / O. A tak namiesto toho hovoria z toho, hovorím toto craigslist.html. 669 00:46:47,766 --> 00:46:52,620 670 00:46:52,620 --> 00:46:53,940 Ja by som otvoriť, že až. 671 00:46:53,940 --> 00:46:59,020 Ja by som Kladie doc do neho. 672 00:46:59,020 --> 00:47:00,470 Aj zatvorte súbor. 673 00:47:00,470 --> 00:47:05,410 A potom už len preto, že CS50 IDE je na oblaku, to je čokoľvek. 674 00:47:05,410 --> 00:47:07,710 Môžem ísť sem. 675 00:47:07,710 --> 00:47:09,320 Ja si môžete stiahnuť súbor. 676 00:47:09,320 --> 00:47:11,830 A potom by to bolo na mojom pevnom disku. 677 00:47:11,830 --> 00:47:13,930 Takže si môžete urobiť to tak. 678 00:47:13,930 --> 00:47:18,830 Alebo ak ste doma, nie pomocou CS50 IDE, ako je Sublime alebo tak niečo, 679 00:47:18,830 --> 00:47:21,900 To je ešte jednoduchšie, pretože to všetko je k dispozícii na mieste, 680 00:47:21,900 --> 00:47:23,020 nie je viazaná na internete. 681 00:47:23,020 --> 00:47:24,720 >> Divákov: Vidím. 682 00:47:24,720 --> 00:47:26,580 To je pre jeden konkrétny problém. 683 00:47:26,580 --> 00:47:30,410 Môžete to urobiť tak, že rekurzívne ísť niekoľko vrstiev hlboké také veci? 684 00:47:30,410 --> 00:47:33,801 >> ROBERT Krábek: Ja si môžete stiahnuť zložky tiež, či je to to, čo sa pýtate. 685 00:47:33,801 --> 00:47:34,426 Divákov: Jo. 686 00:47:34,426 --> 00:47:39,890 687 00:47:39,890 --> 00:47:41,440 >> ROBERT Krábek: cool. 688 00:47:41,440 --> 00:47:43,182