1 00:00:00,000 --> 00:00:03,234 >> [Glazbom] 2 00:00:03,234 --> 00:00:05,275 3 00:00:05,275 --> 00:00:06,400 ROBERT KRABEK: Pozdrav, momci. 4 00:00:06,400 --> 00:00:09,980 Moje ime je Robert Krabek i Ja ću se podučava vas dečki 5 00:00:09,980 --> 00:00:15,470 kako struže web s Nokogiri, što je Ruby knjižnica, 6 00:00:15,470 --> 00:00:17,566 i Kimono, što je Chrome. 7 00:00:17,566 --> 00:00:20,940 8 00:00:20,940 --> 00:00:25,010 >> Dakle, najprije je par stvari koje vas 9 00:00:25,010 --> 00:00:28,790 možete učiniti ako možda ste bili radi sve psets sada 10 00:00:28,790 --> 00:00:31,170 i vaš radni prostor uzimajući malo pun. 11 00:00:31,170 --> 00:00:37,060 Mi zapravo može samo ići i stvoriti novi radni prostor za vas 12 00:00:37,060 --> 00:00:41,220 samo napraviti potpuno novi projekt u. 13 00:00:41,220 --> 00:00:46,160 Dakle, ako želite nastaviti rade u ID CS50 predloška 14 00:00:46,160 --> 00:00:49,080 koji trenutno imate, slobodno, a možete jednostavno 15 00:00:49,080 --> 00:00:54,700 instalirati Nokogiri s CFLAGS equals-- dragulj instalirati nokogiri. 16 00:00:54,700 --> 00:00:56,930 Ali inače ću ti pokazati kako postaviti novu jednu. 17 00:00:56,930 --> 00:01:01,210 A onda je to bitno ispuštajući više trening kotačima. 18 00:01:01,210 --> 00:01:07,120 A ti kodiranje kao da ste bili Samo kodiranje u Sublime ili nešto. 19 00:01:07,120 --> 00:01:12,365 Dakle, ako smo ga prebaciti preko. 20 00:01:12,365 --> 00:01:14,930 21 00:01:14,930 --> 00:01:18,690 >> Dakle, reći da je ovo vaš trenutni CS 50 ID. 22 00:01:18,690 --> 00:01:21,490 Vi samo možete ići na Cloud9 ovdje. 23 00:01:21,490 --> 00:01:22,725 Možete ići na ploču s instrumentima. 24 00:01:22,725 --> 00:01:26,720 25 00:01:26,720 --> 00:01:29,950 To bi trebalo dovesti do karticu radne prostore. 26 00:01:29,950 --> 00:01:32,980 I onda jednostavno možete kliknuti Ovdje, stvoriti novi radni prostor. 27 00:01:32,980 --> 00:01:37,600 Ime svoj novi radni prostor, možda test, ili struganje. 28 00:01:37,600 --> 00:01:42,700 I onda kliknite ovaj običaj karticu ovdje umjesto kartici CS50 predložaka. 29 00:01:42,700 --> 00:01:45,155 I onda možete jednostavno otići i stvoriti novi radni prostor. 30 00:01:45,155 --> 00:01:48,280 >> Već sam stvorio radni prostor ovdje. 31 00:01:48,280 --> 00:01:50,640 Tako ćemo raditi s tim. 32 00:01:50,640 --> 00:01:55,380 A ako ste stvorili novi radni prostor tako da uz karticu Custom, 33 00:01:55,380 --> 00:02:04,560 možete samo upisati dragulj instalirati nokogiri, koji se ne događa. 34 00:02:04,560 --> 00:02:06,230 U redu, to je malo smrznuti. 35 00:02:06,230 --> 00:02:08,979 Ali možete upisati dragulj instalirati nokogiri. 36 00:02:08,979 --> 00:02:15,970 I to bi trebalo biti sve što što se instalacije. 37 00:02:15,970 --> 00:02:20,590 >> Kao što sam rekao prije, ako ste još uvijek radeći u vašem CS50 predložak ID, 38 00:02:20,590 --> 00:02:30,270 vi samo trebate upisati CFLAGS jednako dragulj instalirati nokogiri. 39 00:02:30,270 --> 00:02:33,130 A ja već instalirali to ovdje pa neću to učiniti. 40 00:02:33,130 --> 00:02:38,500 Ali za one koji prate zajedno, slobodno to učinite. 41 00:02:38,500 --> 00:02:46,000 >> Dakle, nakon što ste dobili vaše Nokogiri Radni prostor ili knjižnica instaliran, 42 00:02:46,000 --> 00:02:49,500 Ja ću vam dati malo od ubrzani tečaj u Ruby sintakse 43 00:02:49,500 --> 00:02:53,380 jer Nokogiri je Ruby knjižnica. 44 00:02:53,380 --> 00:03:03,710 Dakle, morat ćete znati neke osnovne Ruby sintaksa za rad s Nokogiri. 45 00:03:03,710 --> 00:03:08,750 Tako neke osnovne razlike od onoga što ste navikli 46 00:03:08,750 --> 00:03:13,370 možda, ako ste radili Do sada je u samo C i PHP, 47 00:03:13,370 --> 00:03:16,010 izjavljujete varijable bez tipa. 48 00:03:16,010 --> 00:03:19,720 Ne koristite zarezom, koja je vrsta reljefa. 49 00:03:19,720 --> 00:03:25,480 Nema zagrade sada oko ili dok se za petlje, na primjer. 50 00:03:25,480 --> 00:03:29,460 Vi samo morati blok koda i zatim staviti kraj na kraju toga. 51 00:03:29,460 --> 00:03:32,380 Nema plus plus ili minus minus, tako da samo 52 00:03:32,380 --> 00:03:36,180 znam da kad radite za petlje, 53 00:03:36,180 --> 00:03:38,620 samo plus i minus jednakosti jednaka. 54 00:03:38,620 --> 00:03:43,310 I umjesto hash uključuju, ćete koristiti zahtijevaju i potom 55 00:03:43,310 --> 00:03:47,755 god knjižnica težak učitati u svoj program. 56 00:03:47,755 --> 00:03:51,610 57 00:03:51,610 --> 00:03:53,430 >> Ruby nije sastavio jezik. 58 00:03:53,430 --> 00:03:55,550 Dakle, to je druga olakšanje. 59 00:03:55,550 --> 00:03:59,350 To je više sličan PHP gdje to je tumačiti jezik. 60 00:03:59,350 --> 00:04:03,570 Možete pokrenuti bilo Ruby skriptu koja pišete s Ruby slijedi 61 00:04:03,570 --> 00:04:07,380 po imenu svog pisma ili programa. 62 00:04:07,380 --> 00:04:13,000 Da znači da je Ruby programa, samo ga završiti .rb umjesto .c. 63 00:04:13,000 --> 00:04:17,440 A tu su i promjenjiva veličine polja u Ruby, 64 00:04:17,440 --> 00:04:23,200 što je super praktično kad si struganje i možda želite dodati 65 00:04:23,200 --> 00:04:26,090 Podaci koje ste struganje u niz. 66 00:04:26,090 --> 00:04:31,960 Vi ne morate malloc novi niz, a kopirati stari niz u novi niz. 67 00:04:31,960 --> 00:04:36,150 Vi samo možete dodati u dva strelicama znakova. 68 00:04:36,150 --> 00:04:39,820 I nema znakova, nema samo pojedinačne žice pismo. 69 00:04:39,820 --> 00:04:44,760 Tako da bi trebao biti malo lakše. 70 00:04:44,760 --> 00:04:50,130 >> Dakle, samo mi ćemo vam dati neke primjeri neke osnovne Ruby sintakse. 71 00:04:50,130 --> 00:04:57,100 Dakle, ovdje možete vidjeti da umjesto Slash Slash, za komentar u Ruby, 72 00:04:57,100 --> 00:04:58,740 vi samo koristite funta znak. 73 00:04:58,740 --> 00:05:04,990 A promjenjiva izjava, koju Samo upišite varijable jednaka 74 00:05:04,990 --> 00:05:07,971 što god želite varijabla biti. 75 00:05:07,971 --> 00:05:09,220 Oni mogu biti nizovi. 76 00:05:09,220 --> 00:05:14,120 Možete imati niz koji ste popuniti s vrijednostima. 77 00:05:14,120 --> 00:05:17,240 stavlja i grafika su slične. 78 00:05:17,240 --> 00:05:20,110 Za naše svrhe Jedina razlika je stvarno 79 00:05:20,110 --> 00:05:25,500 kako kaže, koja se zalaže za stavlja, samo stavlja novu liniju 80 00:05:25,500 --> 00:05:27,440 lik na bilo koju ispisujete. 81 00:05:27,440 --> 00:05:30,980 >> Dakle, ako mi daju malo demonstracije ovdje 82 00:05:30,980 --> 00:05:41,800 možemo pokrenuti ovaj with-- otvorite novi terminal. 83 00:05:41,800 --> 00:05:46,020 Možete vidjeti sve te datoteke koje su u mom terminala. 84 00:05:46,020 --> 00:05:50,960 A ako sam pokrenuti Ruby, Ruby intro.rb ga, 85 00:05:50,960 --> 00:05:53,530 stavlja pet Pozdrav Mather, Quincy, prijevoznik. 86 00:05:53,530 --> 00:05:54,410 Adams. 87 00:05:54,410 --> 00:05:59,295 Tako da je sve što postoji progla polja. 88 00:05:59,295 --> 00:06:01,670 PUBLIKA: Robert, možete napraviti font malo veći? 89 00:06:01,670 --> 00:06:02,461 ROBERT KRABEK: Da. 90 00:06:02,461 --> 00:06:05,370 91 00:06:05,370 --> 00:06:12,280 I ja mogu zumirati jer ne možete povećavanje na terminalu fontove naizgled. 92 00:06:12,280 --> 00:06:18,790 93 00:06:18,790 --> 00:06:24,630 >> Dakle, to je kako ste ispisati varijable na svoj terminal. 94 00:06:24,630 --> 00:06:28,820 Također možete koristiti varijable unutar niza. 95 00:06:28,820 --> 00:06:33,720 Tako je nedavno u PHP, možda ste naučili 96 00:06:33,720 --> 00:06:37,340 da postoji niz interpolacija. 97 00:06:37,340 --> 00:06:43,830 Dakle, ako ste pogledati ovdje, ako sam proglasiti tri varijable, ime, knjižnica, 98 00:06:43,830 --> 00:06:49,700 i jezik, i kaže, ja napisati niz, halo moje ime je. 99 00:06:49,700 --> 00:06:54,190 I onda, umjesto PHP verzija niza interpolacije 100 00:06:54,190 --> 00:06:58,960 koji izgleda malo više kao što je ovaj, imate funta znak, a zatim 101 00:06:58,960 --> 00:07:01,220 kovrčave braće, a potom naziv varijable. 102 00:07:01,220 --> 00:07:07,350 A to je kako ćeš ispisati, kažu, god varijabla ime. 103 00:07:07,350 --> 00:07:10,140 >> I onda također možete spojite žice. 104 00:07:10,140 --> 00:07:12,890 Ruby čini super lako sa znakom plus. 105 00:07:12,890 --> 00:07:16,110 Vi samo imaju jedan niz na lijevoj plus varijable 106 00:07:16,110 --> 00:07:18,860 ili drugi string plus niz. 107 00:07:18,860 --> 00:07:23,500 Dakle, ako sam to isprintati, što bi trebao samo reći Pozdrav, moje ime je Robert. 108 00:07:23,500 --> 00:07:27,340 Ja ću se naučiti vas nokogiri u Ruby. 109 00:07:27,340 --> 00:07:35,370 >> I neka je samo potvrditi da je je doista case-- rubin uvod. 110 00:07:35,370 --> 00:07:36,480 Pozdrav, moje ime je Robert. 111 00:07:36,480 --> 00:07:40,160 Ja ću se naučiti vas nokogiri u Ruby. 112 00:07:40,160 --> 00:07:45,600 >> Premještanje na, ako drugdje izjavama, to je malo drugačije 113 00:07:45,600 --> 00:07:49,800 od onoga što bi se moglo koristiti za Ako ste radili u C. 114 00:07:49,800 --> 00:07:53,200 Ne trebate zagrade. 115 00:07:53,200 --> 00:07:55,220 Ne morate se vitičastih zagrada. 116 00:07:55,220 --> 00:08:00,170 I umjesto drugog, ako, to je ulančani elsif. 117 00:08:00,170 --> 00:08:07,260 Dakle ovdje, ako sam proglasio x do Ovdje, kao što možemo vidjeti, x je još 5. 118 00:08:07,260 --> 00:08:11,100 Dakle, ako je x manji od 3, to ću staviti mali. 119 00:08:11,100 --> 00:08:14,030 Ako je manje od 7, srednje, drugi veliki. 120 00:08:14,030 --> 00:08:17,340 Dakle, 5 je medij broj. 121 00:08:17,340 --> 00:08:22,270 I na kraju ovaj blok koda s krajem. 122 00:08:22,270 --> 00:08:24,920 >> Ovdje je moj for petlje. 123 00:08:24,920 --> 00:08:28,240 A to je sintaksa malo drugačiji. 124 00:08:28,240 --> 00:08:33,500 0. do pet samo bitno je proglašena polja od 0 do 5. 125 00:08:33,500 --> 00:08:36,120 Dakle, postoji pet mjesta u polju. 126 00:08:36,120 --> 00:08:40,500 I onda za svaki utor u koji polje, ja ću biti povećavati i. 127 00:08:40,500 --> 00:08:46,080 Dakle, to bi trebalo ispisati 0 do 5, ili od 0 do 4. 128 00:08:46,080 --> 00:08:49,630 A to bi trebalo ispisati medij. 129 00:08:49,630 --> 00:08:51,370 >> A ja ću samo Blaze putem. 130 00:08:51,370 --> 00:08:54,466 Vi ćete imati pristup ovaj kod kasnije. 131 00:08:54,466 --> 00:08:55,965 Dakle, vi možete pokrenuti ovaj sami. 132 00:08:55,965 --> 00:09:02,090 133 00:09:02,090 --> 00:09:06,620 >> Dakle, ovo je tvoj osnovni while petlja. 134 00:09:06,620 --> 00:09:12,230 To će biti samo ispis j, koracima od 1 do 5 smo hit. 135 00:09:12,230 --> 00:09:18,320 >> Super brzi Ruby ubrzani tečaj o tome kako napisati funkciju. 136 00:09:18,320 --> 00:09:24,460 Umjesto, kažu, int faktorski broj, upravo smo def. 137 00:09:24,460 --> 00:09:28,450 A u biti si definiranje funkcije ovdje. 138 00:09:28,450 --> 00:09:30,600 Ovo će biti naziv funkcije, 139 00:09:30,600 --> 00:09:34,280 i to je sve varijable koje žele proći u funkciji. 140 00:09:34,280 --> 00:09:36,760 Možete imati ako izjave unutar. 141 00:09:36,760 --> 00:09:38,030 Možete se vratiti. 142 00:09:38,030 --> 00:09:42,620 U ovom slučaju, mi smo koji definira rekurzivno 143 00:09:42,620 --> 00:09:45,000 provodi faktorijalni funkcija. 144 00:09:45,000 --> 00:09:48,660 Tako smo samo nazvati funkcije u Ruby kao što je ovaj. 145 00:09:48,660 --> 00:09:54,700 >> Dakle, ako sam definirati ovo, može nazvati faktorijel, prolaze u 3, 146 00:09:54,700 --> 00:09:59,700 te 3 će biti promjenjiva broj koje mogu koristiti u funkciji. 147 00:09:59,700 --> 00:10:08,010 A to to_s samo okretanjem vratiti vrijednost faktorskom u nizu. 148 00:10:08,010 --> 00:10:10,760 Inače to će baciti pogreška govoreći oh, 149 00:10:10,760 --> 00:10:13,230 Ne možete ispisati string-- zato se sjetite, 150 00:10:13,230 --> 00:10:18,230 stavlja se stavi string-- jer ovo faktorijalni vratio broj. 151 00:10:18,230 --> 00:10:21,850 Tako možemo pretvoriti da u nizu kao takva. 152 00:10:21,850 --> 00:10:27,856 I obrnuto, možete pretvoriti niz za cijeli broj sa to_i. 153 00:10:27,856 --> 00:10:32,650 >> Dakle, što je sve super jednostavno, ako sam samo komentirati ovo, spasiti 154 00:10:32,650 --> 00:10:36,250 i pokrenite faktorsku funkciju. 155 00:10:36,250 --> 00:10:39,850 Trebamo biti u mogućnosti vidjeti da faktorijalni 3 je 6. 156 00:10:39,850 --> 00:10:42,790 I to je doista istina. 157 00:10:42,790 --> 00:10:46,160 >> Tako da je vaš ubrzani tečaj u Ruby. 158 00:10:46,160 --> 00:10:53,550 A sada da znate Ruby, možemo ići na na osnovnu Nokogiri struganje postavljanje. 159 00:10:53,550 --> 00:10:58,190 U osnovi sve što morate učiniti je, u Ruby, zahtijevaju knjižnice. 160 00:10:58,190 --> 00:11:04,390 I za naše potrebe biti ćemo pomoću Knjižnica OpenURI kao Nokogiri. 161 00:11:04,390 --> 00:11:07,870 I onda ono što do-- i to će dati sintaksu za this-- 162 00:11:07,870 --> 00:11:16,010 je što otvorite URL koliko bi u uvojak zahtjev, koja se zalaže za C URL. 163 00:11:16,010 --> 00:11:20,330 >> Dakle, što se URL web stranice u pitanju. 164 00:11:20,330 --> 00:11:22,030 Možete ga spremiti u varijablu. 165 00:11:22,030 --> 00:11:27,400 A onda možete pretraživati ​​kroz to varijabla za jedinstvenim HTML oznake koje koriste 166 00:11:27,400 --> 00:11:30,590 .css naredbe. 167 00:11:30,590 --> 00:11:34,360 A onda možete ispisati sadržaj gdje god želite. 168 00:11:34,360 --> 00:11:35,720 Možete početi u bazi podataka. 169 00:11:35,720 --> 00:11:42,040 Možete izlaz u datoteku ili čak i samo ga ispisati na zaslon. 170 00:11:42,040 --> 00:11:47,290 >> Tako ćemo vam pokazati osnovne strugač. 171 00:11:47,290 --> 00:11:52,570 Dakle ovdje možete vidjeti imamo zahtijevaju nokogiri, zahtijevaju otvorenog uri. 172 00:11:52,570 --> 00:11:57,150 Vaš osnovni set up, neka je pozvati ga ili dokument doc, 173 00:11:57,150 --> 00:12:07,780 jednako Nokogiri :: HTML otvoren, što je Naredba pod uvjetom da nam je OpenURI 174 00:12:07,780 --> 00:12:08,920 knjižnica. 175 00:12:08,920 --> 00:12:14,000 I mi ćemo biti u potrazi za one vi koji bi mogli biti živi u quad, 176 00:12:14,000 --> 00:12:21,270 za bicikle koje su u Bostonu popisu na bike dijelu Boston Craigslist 177 00:12:21,270 --> 00:12:22,020 stranica. 178 00:12:22,020 --> 00:12:26,460 >> Dakle, ako niste upoznati s Curl, ja ću samo 179 00:12:26,460 --> 00:12:28,930 pokazati vam jako brzo što će Curl učiniti. 180 00:12:28,930 --> 00:12:38,350 Ako sam htjela da se sve URL iz stranica Craigslist, ako upišete rotor, 181 00:12:38,350 --> 00:12:44,950 to samo potištenost sve URL od bicikla stranice Craigslist 182 00:12:44,950 --> 00:12:46,720 na moj terminala. 183 00:12:46,720 --> 00:12:49,130 To nije osobito korisna, jer ja ne 184 00:12:49,130 --> 00:12:53,330 želite ručno proći i naći ono što tražim. 185 00:12:53,330 --> 00:13:01,590 Ali samo tako možete vidim da sam zapravo 186 00:13:01,590 --> 00:13:13,966 koristeći pravo kôd, ako pogledate na URL za Craigslist u bikes-- 187 00:13:13,966 --> 00:13:17,460 iz nekog razloga to nije pronađen. 188 00:13:17,460 --> 00:13:20,340 Ako pogledate ovu stranicu i pogledate URL, 189 00:13:20,340 --> 00:13:23,970 ovo treba biti identične Curl Zahtjev da sam samo poslati. 190 00:13:23,970 --> 00:13:27,700 I doista, to je ono što se pohranjen u varijablu doc. 191 00:13:27,700 --> 00:13:36,540 >> Dakle, kada se vratite na našu kôd smo onda može raditi na ovom doc varijable 192 00:13:36,540 --> 00:13:40,660 pomoću .css. 193 00:13:40,660 --> 00:13:49,240 Dakle, reći da sam htjela da se sve oznake koje su span.txt, 194 00:13:49,240 --> 00:13:51,740 i sve a oznake unutar tom oznakom. 195 00:13:51,740 --> 00:13:56,150 A zašto možda želimo to učiniti, čujem vas plakati? 196 00:13:56,150 --> 00:14:02,920 >> Ako Pregledajte element, to ti je daje kvar kako URL strukturiran. 197 00:14:02,920 --> 00:14:06,200 Ako sam pomaknite se dolje do Ovdje možete vidjeti 198 00:14:06,200 --> 00:14:08,770 što svaki od njih drugačiji Elementi predstavlja. 199 00:14:08,770 --> 00:14:13,410 Dakle, možda želim pristupiti ovaj dio. 200 00:14:13,410 --> 00:14:16,820 Dakle, ja sam koristeći Chrome programer alati za Pregledajte element. 201 00:14:16,820 --> 00:14:22,970 Vidim ovdje da ova je oznaka u razmaku 202 00:14:22,970 --> 00:14:26,230 označiti s klasi txt. 203 00:14:26,230 --> 00:14:29,610 >> Dakle, to dobiva na naše Prvi postupak koji 204 00:14:29,610 --> 00:14:37,330 je doc.css vijek, što je oznaka da je Tražim u svim ovim URL. 205 00:14:37,330 --> 00:14:43,650 A onda .txt djeluje slično CSS radi kada ste samo pisanje CSS 206 00:14:43,650 --> 00:14:49,630 u HTML datoteke po određivanje klase. 207 00:14:49,630 --> 00:14:57,980 Dakle, ovaj operator će odrediti raspona oznaku s klasi txt. 208 00:14:57,980 --> 00:15:02,800 A onda, ako sam ostavio prostora, to će onda ići u tom oznakom 209 00:15:02,800 --> 00:15:05,170 a zatim pronaći oznaka u to. 210 00:15:05,170 --> 00:15:10,750 >> Dakle, ako sam samo stavio ovo terminal, ja bi trebao 211 00:15:10,750 --> 00:15:21,630 biti u mogućnosti vidjeti u suštini sve to je u ovom span class txt. 212 00:15:21,630 --> 00:15:22,890 Tako ćemo dati da ići. 213 00:15:22,890 --> 00:15:25,870 214 00:15:25,870 --> 00:15:27,756 rubin Craigslist-struganje. 215 00:15:27,756 --> 00:15:31,850 216 00:15:31,850 --> 00:15:37,250 I doista to nam daje sve od njih oznake različitih oglasi koji 217 00:15:37,250 --> 00:15:40,400 nalaze se na stranici Craigslist. 218 00:15:40,400 --> 00:15:45,670 >> Dakle, ako ćemo se vratiti, možemo pretvoriti ovaj u nešto malo više koristan. 219 00:15:45,670 --> 00:15:51,050 Možda želimo samo linkove. 220 00:15:51,050 --> 00:15:58,790 Jer u tom oznakom, i ja ću imaju hipervezu na putu 221 00:15:58,790 --> 00:16:00,590 da je ova stranica odlazi. 222 00:16:00,590 --> 00:16:09,100 Dakle, ako pogledate ovaj kod ovdje što ću učiniti je, umjesto .css, 223 00:16:09,100 --> 00:16:12,380 Ja mogu ići at_css. 224 00:16:12,380 --> 00:16:16,820 A to će samo dobiti prvi element sve te stvari. 225 00:16:16,820 --> 00:16:20,890 Dakle, ako su za to se u broj Upravo sam ranije pokazao, 226 00:16:20,890 --> 00:16:23,800 umjesto povratka sve to, to bi samo 227 00:16:23,800 --> 00:16:26,850 povratak na prvu jedan od onih. 228 00:16:26,850 --> 00:16:31,310 Dakle, to je kako operator at_css radi. 229 00:16:31,310 --> 00:16:39,460 >> Dakle, želimo pohraniti Put sve prve oznake. 230 00:16:39,460 --> 00:16:47,430 I zato će nam dati A- tako da smo još uvijek ide koristiti .css. 231 00:16:47,430 --> 00:16:53,830 No, budući da je ovo će dati nas vratiti cijeli niz oznaka, 232 00:16:53,830 --> 00:16:55,710 ćemo pristup prvi element. 233 00:16:55,710 --> 00:17:01,700 Dakle, ovo je još jedan način na koji možete pristup bilo kojeg elementa ako 234 00:17:01,700 --> 00:17:04,810 ima niz elemenata koja se vraća, 235 00:17:04,810 --> 00:17:11,930 jer možete liječiti sve što .css vraća kao polje, u suštini. 236 00:17:11,930 --> 00:17:16,880 A onda ćemo pristupiti hipertekst referentni atribut to. 237 00:17:16,880 --> 00:17:24,810 >> Dakle, ako pogledamo, ako je ste gledali vrlo blizu ovdje, 238 00:17:24,810 --> 00:17:28,270 Ako ste upravo bitno pogledajte URL traku, 239 00:17:28,270 --> 00:17:33,880 to je put koji ti si idući u biti struganje. 240 00:17:33,880 --> 00:17:41,565 Dakle, ako mi samo pokrenuti ovo opet, i uvjerite se da smo ga spasili. 241 00:17:41,565 --> 00:17:47,040 242 00:17:47,040 --> 00:17:48,300 Možete provjeriti kod kuće. 243 00:17:48,300 --> 00:17:51,430 To zapravo odgovara s ovom linku. 244 00:17:51,430 --> 00:17:55,950 >> Pa zašto možda želimo koristiti ovaj? 245 00:17:55,950 --> 00:17:57,870 Ako želite struže stranica i ima 246 00:17:57,870 --> 00:18:00,270 stranica linkova poput Craigslist ne možete 247 00:18:00,270 --> 00:18:03,210 možda želite ići onda u svakoj od tih linkova 248 00:18:03,210 --> 00:18:05,120 a onda struže Sadržaj toga što 249 00:18:05,120 --> 00:18:08,520 je upravo ono što ćemo učiniti. 250 00:18:08,520 --> 00:18:11,660 >> Dakle, nakon što su put kao promjenjiva, ja više ne stvarno 251 00:18:11,660 --> 00:18:13,200 stalo je ispis. 252 00:18:13,200 --> 00:18:15,420 Moram ga pohraniti kao varijabla. 253 00:18:15,420 --> 00:18:20,980 I onda ja mogu pristupiti druga Stranica na isti način pristupiti 254 00:18:20,980 --> 00:18:22,260 doc na prvom mjestu. 255 00:18:22,260 --> 00:18:25,920 Osim s URL, idemo koristiti string interpolaciju 256 00:18:25,920 --> 00:18:29,180 kao što sam opisivao u Ruby ranije dodati 257 00:18:29,180 --> 00:18:32,010 put do kraja korijena. 258 00:18:32,010 --> 00:18:38,970 >> Pa što to će učiniti je to će staviti na putu 259 00:18:38,970 --> 00:18:42,360 da sam struganje prije a zatim da 260 00:18:42,360 --> 00:18:49,580 u novi predmet, što god želite poziv it-- first_listing, npr. 261 00:18:49,580 --> 00:18:52,900 Ali ja ću otići je na stavci za sada, 262 00:18:52,900 --> 00:18:55,420 jer to je ono što sam pomoću ovdje. 263 00:18:55,420 --> 00:19:02,900 >> Dakle, reći da sam htjela da se opis od prvog objavljivanja u Craigslist. 264 00:19:02,900 --> 00:19:04,740 Dakle, ja bih ići ovdje. 265 00:19:04,740 --> 00:19:10,660 Ja bih kliknite na Pregledajte Element opet, jer ovo je opis. 266 00:19:10,660 --> 00:19:14,350 Ja bih ići ovdje i vidjeti ako ja mogu naći kako bih mogao 267 00:19:14,350 --> 00:19:16,530 moći tražiti ovom jedinstvenom oznakom. 268 00:19:16,530 --> 00:19:19,530 I u ovom slučaju, to je osobna, koja nas vodi 269 00:19:19,530 --> 00:19:26,810 za naš sljedeći način traženja oznake, što je s hashtag. 270 00:19:26,810 --> 00:19:30,670 >> Tako je za nastavu, možete koristite operator dot. 271 00:19:30,670 --> 00:19:38,610 Dakle .txt se određuje klasu txt, dok je hash navodi ID. 272 00:19:38,610 --> 00:19:43,720 Dakle, u ovom slučaju, oznaka je poglavlje, a ID je postingbody. 273 00:19:43,720 --> 00:19:47,780 >> Tako to ide i nađe first-- jer smo 274 00:19:47,780 --> 00:19:51,200 pomoću at_css-- ovo ide i nađe prvi element koji 275 00:19:51,200 --> 00:19:57,180 dolazi s oznakom odjeljka i ID postingbody. 276 00:19:57,180 --> 00:20:02,636 A onda možete pristupiti element teksta te stavke se vratio s .text. 277 00:20:02,636 --> 00:20:06,230 A onda možemo pohraniti da je u opisu. 278 00:20:06,230 --> 00:20:09,370 >> Tako da sada imamo varijabla opis, 279 00:20:09,370 --> 00:20:14,850 bismo mogli napraviti, recimo, file I / O. Tako file I / O u Ruby 280 00:20:14,850 --> 00:20:21,310 vrlo je sličan file I / O u C gdje smo otvorili datoteku. 281 00:20:21,310 --> 00:20:23,260 Možemo pisati na njega. 282 00:20:23,260 --> 00:20:25,060 A onda ćemo zatvoriti tu datoteku. 283 00:20:25,060 --> 00:20:29,660 >> Dakle ovdje, mi samo navedu podnijeti, neke proizvoljne varijablu. 284 00:20:29,660 --> 00:20:33,120 Također je mogao samo staviti ovo ovdje. 285 00:20:33,120 --> 00:20:39,630 Imamo varijablu da smo spremanje otvorenom datoteku kao s File.open. 286 00:20:39,630 --> 00:20:46,370 I mi pišete na ovu sliku, pa smo ga otvorili s w operatora. 287 00:20:46,370 --> 00:20:54,280 A onda smo stavili niz Into the file s operatorom .puts. 288 00:20:54,280 --> 00:20:58,310 A onda smo stavili varijablu koju želim pisati datoteke u to. 289 00:20:58,310 --> 00:21:00,200 A onda smo jednostavno zatvorite datoteku. 290 00:21:00,200 --> 00:21:04,000 >> Dakle, ako ćemo ići naprijed i pokrenuti to, to bi trebalo proizvesti dokument 291 00:21:04,000 --> 00:21:10,840 s description.txt koji će ima ovaj opis unutar njega. 292 00:21:10,840 --> 00:21:14,015 Dakle, ako sam it-- pokrenuti br. 293 00:21:14,015 --> 00:21:17,520 294 00:21:17,520 --> 00:21:23,330 To je producirao tekstualnu datoteku s, nadamo se, ista stvar. 295 00:21:23,330 --> 00:21:25,850 296 00:21:25,850 --> 00:21:33,290 Dakle, tu bi moglo biti novi knjiženje koji je došao gore, dok sam razgovarao. 297 00:21:33,290 --> 00:21:36,580 I doista izgleda došlo. 298 00:21:36,580 --> 00:21:43,380 Dakle, ako idemo na ovoj klasičnoj bicikl, 1962. do 1966. godine, koja se čini kako bi se slagala. 299 00:21:43,380 --> 00:21:45,620 I tamo idete. 300 00:21:45,620 --> 00:21:51,250 >> Dakle, to je najosnovnija funkcionalnost struganje. 301 00:21:51,250 --> 00:21:57,510 Mogli bismo imati, umjesto samo pisanje na ovu sliku, 302 00:21:57,510 --> 00:21:59,930 možemo dodati stvari za niz. 303 00:21:59,930 --> 00:22:03,770 Dakle, ako kažem tri polja, naslov, cijenu i opis. 304 00:22:03,770 --> 00:22:06,310 305 00:22:06,310 --> 00:22:13,790 I mi smo s radom na stavku doc ​​danas. 306 00:22:13,790 --> 00:22:16,940 Možemo proći i pronaći sve span.txt. 307 00:22:16,940 --> 00:22:21,710 I zapamtite, ovo vraća niz svih stavki koje pronađe. 308 00:22:21,710 --> 00:22:27,300 A onda u Ruby, možete jednostavno koristiti .each se ponoviti kroz svaku stavku 309 00:22:27,300 --> 00:22:28,410 od polja. 310 00:22:28,410 --> 00:22:31,330 A onda za svaku stavku, Samo ću ga nazvati 311 00:22:31,330 --> 00:22:34,620 link, jer je to u biti ono što je. 312 00:22:34,620 --> 00:22:46,830 >> Dakle, ako sam stavio svaku link.css dot a.hdrlnk, to se zapravo događa na link 313 00:22:46,830 --> 00:22:58,280 i nalaz unutar tog linka drugom HTML element i odgovarajući razred. 314 00:22:58,280 --> 00:23:04,990 Dakle, ako se sjetimo što to je bio je span.txt, 315 00:23:04,990 --> 00:23:13,160 možete see- neka mi samo vratiti Pravi quick-- roku span.txt 316 00:23:13,160 --> 00:23:17,490 imamo mnogo drugih razreda. 317 00:23:17,490 --> 00:23:27,180 Dakle unutar span.txt, tražimo za oznaku s klase hdrlnk. 318 00:23:27,180 --> 00:23:29,890 Pa neka mi samo da za vi jako brzo. 319 00:23:29,890 --> 00:23:37,390 320 00:23:37,390 --> 00:23:42,850 >> Tako možete vidjeti ovdje, to je oznaka to je u razmaku od klase txt 321 00:23:42,850 --> 00:23:44,920 da ima klase hdrlnk. 322 00:23:44,920 --> 00:23:47,610 A to je upravo ono što mi pokušavamo doći. 323 00:23:47,610 --> 00:23:54,680 >> Tako smo sada pokušavamo pohraniti sve tih veza unutar naslova. 324 00:23:54,680 --> 00:23:59,545 A onda ćemo ispisati iz svake od tih linkova. 325 00:23:59,545 --> 00:24:00,360 Ne oprosti. 326 00:24:00,360 --> 00:24:04,530 Mi ćemo ispisati cijena svake od njih. 327 00:24:04,530 --> 00:24:09,350 Tako ćemo pokrenuti ovo stvarno brzo i vidjeti što to radi. 328 00:24:09,350 --> 00:24:14,680 329 00:24:14,680 --> 00:24:17,720 >> Pa to samo zapravo otišao kroz svaki od veze 330 00:24:17,720 --> 00:24:27,310 pak, pristupiti oznaku u pitanju, a zatim izvukao cijenu. 331 00:24:27,310 --> 00:24:33,910 I to je to učinio jer je nakon imate sve što je u naslovu, 332 00:24:33,910 --> 00:24:37,260 smo upravo pohranjeni naslov tamo. 333 00:24:37,260 --> 00:24:40,180 Upravo smo pohranili vezu u naslovu polja. 334 00:24:40,180 --> 00:24:47,720 I to za rad petlji, gdje je umjesto odlaska na a.hdrlnk, 335 00:24:47,720 --> 00:24:50,490 mi smo u potrazi za span.price. 336 00:24:50,490 --> 00:24:56,500 Dakle, ako ja mogu samo jako brzo pronaći cijena, ako pregledati elementa, 337 00:24:56,500 --> 00:25:00,610 vidjet ćete da je vijek s klasi cijene. 338 00:25:00,610 --> 00:25:04,670 A to je u biti način mi smo dobivanje cijenu tamo. 339 00:25:04,670 --> 00:25:10,040 >> Dakle, to je stvarno Osnovni slučaj struganje. 340 00:25:10,040 --> 00:25:13,550 Tako ćete dobiti sve elementi na stranici 341 00:25:13,550 --> 00:25:16,510 da, recimo, vi već znate URL. 342 00:25:16,510 --> 00:25:21,050 >> Dakle, ako želimo dobiti malo više u dubinu, 343 00:25:21,050 --> 00:25:23,950 možemo struže stranice unutar stranice. 344 00:25:23,950 --> 00:25:28,480 A za ovaj primjer, ja ću biti izlaza u CSV datoteku. 345 00:25:28,480 --> 00:25:39,510 Tako sam traži CSV ovdje jer Ruby ne, u sebi, 346 00:25:39,510 --> 00:25:42,350 imaju funkcionalnost samo izlazne CSV datoteke. 347 00:25:42,350 --> 00:25:45,030 Dakle, to je super jednostavno. 348 00:25:45,030 --> 00:25:48,710 Dopustite mi samo ići na sljedeću. 349 00:25:48,710 --> 00:25:51,640 350 00:25:51,640 --> 00:25:57,170 Mi smo pokriveni file I / O. Dakle, ovo je slično kako je C. 351 00:25:57,170 --> 00:26:00,870 I prije nego što smo prešli na Kimono, Samo ću vam pokazati kako se stvarno brzo 352 00:26:00,870 --> 00:26:02,790 da struže web stranice u roku od znamenitosti. 353 00:26:02,790 --> 00:26:10,040 >> Tako smo već naučili izjaviti polja u Ruby. 354 00:26:10,040 --> 00:26:13,280 Pa ja sam samo progla hrpa proizvoljnih polja 355 00:26:13,280 --> 00:26:16,310 da ću biti pohranu podataka u roku. 356 00:26:16,310 --> 00:26:20,680 Doc djeluje na isti način kao što je učinio u prethodnu datoteku. 357 00:26:20,680 --> 00:26:23,580 Idemo u, pronalaženje svaki od span.txt godina. 358 00:26:23,580 --> 00:26:25,040 Mi već znamo. 359 00:26:25,040 --> 00:26:32,130 Da je spremnik unutar kojih veza ima sve podatke koje želimo. 360 00:26:32,130 --> 00:26:40,800 >> Dakle ovdje što radimo je za svaku Link span class txt, idemo u 361 00:26:40,800 --> 00:26:45,720 a mi smo pronalaženje oznaku, pronalaženje prvi element koji. 362 00:26:45,720 --> 00:26:49,937 Zapamtite, .css vraća niz, tako da ne mogu jednostavno pristupiti kao što je. 363 00:26:49,937 --> 00:26:51,520 Idemo pronaći prvi element. 364 00:26:51,520 --> 00:26:56,430 Čak i ako je niz jedan predmet, morate koristiti ovu sintaksu, 365 00:26:56,430 --> 00:26:58,800 a zatim izvucite href atribut. 366 00:26:58,800 --> 00:27:01,800 >> Tako smo učinili ranije. 367 00:27:01,800 --> 00:27:04,440 Dakle, to bi trebao izgledati poznato. 368 00:27:04,440 --> 00:27:14,330 I tako sada imamo niz nazivaju kob sve naše veze 369 00:27:14,330 --> 00:27:16,590 da ćemo želite koristiti. 370 00:27:16,590 --> 00:27:21,350 Dakle, ako imamo tu lepezu svega od staza koje žele koristiti, 371 00:27:21,350 --> 00:27:26,840 tada možemo stvoriti stavku za svaku od tih stranica kad smo otvorili tu stranicu. 372 00:27:26,840 --> 00:27:31,150 Dakle, kao što smo i vidjeli na sintaksa prije, gdje je 373 00:27:31,150 --> 00:27:37,450 radi niza interpolaciju s puta ovdje, tako da je sintaksa je samo za put. 374 00:27:37,450 --> 00:27:41,450 A mogao sam nazvati ovaj varijabla bilo proizvoljna imena. 375 00:27:41,450 --> 00:27:43,070 >> To je važno. 376 00:27:43,070 --> 00:27:46,650 To je niz koji ćete se pristupa svaki element. 377 00:27:46,650 --> 00:27:52,400 Ali kad kažeš za put u putovima, to znači za svaki element u stazama, 378 00:27:52,400 --> 00:27:55,150 pozvati ga put i koristiti. 379 00:27:55,150 --> 00:27:59,266 To je u biti kao kad vas učiniti za petlju i koristite int i. 380 00:27:59,266 --> 00:28:04,000 Dakle, možete liječiti put kao varijabla koja se povećavati. 381 00:28:04,000 --> 00:28:07,820 >> I onda za svakog od njih, ići u svakoj od tih linkova. 382 00:28:07,820 --> 00:28:11,710 Zato smo ga pohrane u točki stranici, tako da mi stvaramo novu stranicu svaki put 383 00:28:11,710 --> 00:28:13,330 možemo pristupiti. 384 00:28:13,330 --> 00:28:20,560 I onda u tom novoj stranici, naći span.postingtitletext, span.price, 385 00:28:20,560 --> 00:28:22,240 a zatim poglavlje # postingbody. 386 00:28:22,240 --> 00:28:28,430 Već smo pokriveni odjeljak # postingbody kad smo pogledali opisu. 387 00:28:28,430 --> 00:28:34,890 >> Tako možemo ići vidjeti u Craigslist post, ako ste samo gleda na naslov, 388 00:28:34,890 --> 00:28:38,810 možete ga vidjeti ovdje, span postingtitletext. 389 00:28:38,810 --> 00:28:41,390 I to je razlog zašto je tamo. 390 00:28:41,390 --> 00:28:49,120 A onda za cijenu, možete pristupiti ga span class cijene. 391 00:28:49,120 --> 00:28:54,480 >> Dakle, mi također možda moglo želite spremiti URL. 392 00:28:54,480 --> 00:28:58,580 Dakle, samo ćemo pokrenuti ovo opet, spremite ga u niz, 393 00:28:58,580 --> 00:29:01,150 jer ako ste u potrazi na Craigslist, ti si 394 00:29:01,150 --> 00:29:05,290 Vjerojatno će htjeti put do, ako vidite nešto što vas zanima, 395 00:29:05,290 --> 00:29:06,620 vratiti na tom mjestu. 396 00:29:06,620 --> 00:29:10,480 Dakle, vi samo želite spremiti URL za reference radi. 397 00:29:10,480 --> 00:29:13,840 398 00:29:13,840 --> 00:29:19,630 >> Ovo je samo bitno još sintaksa za for petlje. 399 00:29:19,630 --> 00:29:26,360 Upravo sam mogao učiniti umjesto paths.each od za put u putovima s indeksom. 400 00:29:26,360 --> 00:29:31,280 A to sintaksa je Ruby for-- Put je ono što smo učinili ovdje, 401 00:29:31,280 --> 00:29:33,920 progla varijablu za svaku stavku. 402 00:29:33,920 --> 00:29:38,540 I indeksa se ponaša kao I u C petlje. 403 00:29:38,540 --> 00:29:41,280 Tako možete pratiti onoga što je indeks. 404 00:29:41,280 --> 00:29:45,200 >> Dakle, ovdje je samo Malo zgodan stvar 405 00:29:45,200 --> 00:29:46,950 kada ste trčanje strugač. 406 00:29:46,950 --> 00:29:50,580 Ako ste struganje stotine stranica, kako bi bili sigurni da ne visi, 407 00:29:50,580 --> 00:29:53,320 To će samo izlaz, Ja sam pristup ovoj stranici, 408 00:29:53,320 --> 00:29:55,960 i pazeći da to je još uvijek nastavlja. 409 00:29:55,960 --> 00:29:59,250 No, za naše potrebe, jer postoji stotinu stavki, 410 00:29:59,250 --> 00:30:08,000 Idem pristup samo tri od njih tako da mi ne ponestane vremena ovdje. 411 00:30:08,000 --> 00:30:13,040 >> No, prije nego što smo dobili na to, ja sam samo će vam pokazati stvarno brzo, 412 00:30:13,040 --> 00:30:16,940 Ja ću biti izlaza naslov, cijena, opis i URL 413 00:30:16,940 --> 00:30:19,600 svakog od linkova koje sam strugane. 414 00:30:19,600 --> 00:30:23,720 A onda je to samo Sintaksa za CSV knjižnici. 415 00:30:23,720 --> 00:30:25,240 Otvorite CSV. 416 00:30:25,240 --> 00:30:27,070 To je ono što ću nazvati. 417 00:30:27,070 --> 00:30:29,430 Otvorite ga pisati učiniti. 418 00:30:29,430 --> 00:30:33,830 A onda CSV će biti datoteka koja ti si unosom sve u. 419 00:30:33,830 --> 00:30:37,800 Ovo je samo duševne ček za da znam da je to radi. 420 00:30:37,800 --> 00:30:41,240 A ovo je moj razum ček znati da je to završeno. 421 00:30:41,240 --> 00:30:46,670 Tako sam staviti naslov u nizu u CSV, cijena, url, opis, 422 00:30:46,670 --> 00:30:49,420 Sve u retke u CSV. 423 00:30:49,420 --> 00:30:53,410 >> Dakle, ako ćemo ići i trčanje ovo now-- a ja samo 424 00:30:53,410 --> 00:31:04,710 pobrinite se da sam it-- spasio umjesto samo ga izlaza na terminal, 425 00:31:04,710 --> 00:31:09,750 bismo trebali imati CSV file koji je proizveo. 426 00:31:09,750 --> 00:31:13,500 Dakle, ovdje možemo vidjeti CSV file koji je bio proizveden. 427 00:31:13,500 --> 00:31:19,330 Ovo je izlaz iz Scape da sam samo trčao. 428 00:31:19,330 --> 00:31:23,030 Kao što možete vidjeti ovdje, Pristup stranica 0, 1, 2, 3. 429 00:31:23,030 --> 00:31:27,400 To su naslovi, Cijene, opise. 430 00:31:27,400 --> 00:31:31,710 A ako gledamo ovaj CSV datoteka koja smo generira, 431 00:31:31,710 --> 00:31:35,700 možete vidjeti njegov reproduciraju ovdje. 432 00:31:35,700 --> 00:31:40,350 To nije Excel, tako da nije formatiran u retke i stupce. 433 00:31:40,350 --> 00:31:45,140 Ali možete zamisliti kako to bi moglo biti formatiran. 434 00:31:45,140 --> 00:31:47,740 >> CSV zalaže za vrijednosti odvojenih zarezom. 435 00:31:47,740 --> 00:31:50,090 Dakle, možete zamisliti da bi to moglo biti red. 436 00:31:50,090 --> 00:31:54,700 I svaki zarez bi pokazuju poseban stupac. 437 00:31:54,700 --> 00:32:00,010 Samo riječ caution-- ponekad si 438 00:32:00,010 --> 00:32:02,260 struganje stvari s puno tipkovnici. 439 00:32:02,260 --> 00:32:05,100 Dakle, ako ste izlaza je u CSV datoteku, 440 00:32:05,100 --> 00:32:10,340 To možda neće ispisati način što možda mislite. 441 00:32:10,340 --> 00:32:16,770 >> Tako da je u biti sve tu je struganje osnovni HTML 442 00:32:16,770 --> 00:32:20,110 stranice s Nokogiri. 443 00:32:20,110 --> 00:32:26,000 >> Dakle, internet bića inovativna kao što je došao gore 444 00:32:26,000 --> 00:32:33,220 s više automatiziran i GUI verzija, iako manje robustan 445 00:32:33,220 --> 00:32:35,540 verzija struganje razne web stranice. 446 00:32:35,540 --> 00:32:39,060 I za naše potrebe Ja ću biti pokazujući 447 00:32:39,060 --> 00:32:42,920 Chrome proširenje naziva Kimono. 448 00:32:42,920 --> 00:32:46,690 A sve što morate učiniti je da navigaciju na stranici koju želite struže. 449 00:32:46,690 --> 00:32:48,590 Možete kliknuti na području interesa. 450 00:32:48,590 --> 00:32:51,510 Možete kalibrirati polja, jer će se automatski 451 00:32:51,510 --> 00:32:54,360 otkriti ono što misli Želite li biti struganje, 452 00:32:54,360 --> 00:32:56,280 a onda ti samo stvoriti API. 453 00:32:56,280 --> 00:33:03,700 >> Dakle, ako smo ga pokazati na Craigslist, to zapravo ne bi raditi. 454 00:33:03,700 --> 00:33:08,290 I to je ono što sam bio idući natrag govoreći o tome ne bude robustan. 455 00:33:08,290 --> 00:33:10,320 Ona ima problema stvara API. 456 00:33:10,320 --> 00:33:13,400 No, kao i demonstracija onoga što će učiniti, 457 00:33:13,400 --> 00:33:17,460 ako instalirate Chrome proširenje, Sve što trebate učiniti je kliknete na njega. 458 00:33:17,460 --> 00:33:21,750 To Kimonofies stranicu, a zatim vas kliknite na stvar koju želite skriptu. 459 00:33:21,750 --> 00:33:24,480 >> Dakle, ako sam ja da kliknete na da, to bi istaknuti 460 00:33:24,480 --> 00:33:28,130 ono što misli da ja želim biti struganjem tu stranicu. 461 00:33:28,130 --> 00:33:33,660 Dakle, možda sam nazvati ovaj oglasi. 462 00:33:33,660 --> 00:33:36,430 To je koliko stvari sam bira. 463 00:33:36,430 --> 00:33:43,810 A ja mogu samo potvrditi ili odbiti neke od ostalih predloženih oglasi 464 00:33:43,810 --> 00:33:49,600 da bi se dodati što će biti struganje. 465 00:33:49,600 --> 00:33:52,330 >> Tako sada možemo vidjeti postoji bira sto stavke. 466 00:33:52,330 --> 00:33:58,060 Ako želim imati još jednu polje koje sam Također struže koji se odnosi na to, 467 00:33:58,060 --> 00:34:02,540 kažu Želim struže cijenu kao dobro, onda ja mogu učiniti isto. 468 00:34:02,540 --> 00:34:06,190 469 00:34:06,190 --> 00:34:11,550 >> Dakle, ovdje je dokaz kako je mnogo manje robustan, jer sada je 470 00:34:11,550 --> 00:34:15,050 branje gore u grad, umjesto samo cijena koju želim. 471 00:34:15,050 --> 00:34:16,989 A sada je pokupio 200 stvari. 472 00:34:16,989 --> 00:34:19,880 Možete se vratiti i izbrisati. 473 00:34:19,880 --> 00:34:21,449 Možete pokušati ponovo. 474 00:34:21,449 --> 00:34:24,250 Ali nema garancije. 475 00:34:24,250 --> 00:34:29,909 Ovo je način kako to radi ponekad. 476 00:34:29,909 --> 00:34:32,969 Kao što vidite ovdje, sada, kaže 96 ovdje. 477 00:34:32,969 --> 00:34:37,000 To je pokupila većinu linkova da želite struže, ali ne 478 00:34:37,000 --> 00:34:39,280 nužno sve njih. 479 00:34:39,280 --> 00:34:43,909 >> Još jedan koristan alat za Kimono iako je li mogu ići na napredne značajke 480 00:34:43,909 --> 00:34:47,980 ovdje, idite na Napredno, i to će vam pokazati 481 00:34:47,980 --> 00:34:53,139 slom jedinstvena način pristupa HTML 482 00:34:53,139 --> 00:34:54,909 oznake koje želite da struže. 483 00:34:54,909 --> 00:35:01,450 Tako oglasi, ako pogledate ovdje, ako pristupite div p span span, 484 00:35:01,450 --> 00:35:06,030 zapravo možete samo koristiti ovo u svoj Nokogiri koda, 485 00:35:06,030 --> 00:35:10,780 gdje je prije smo span.txt pristupiti svaki od elemenata. 486 00:35:10,780 --> 00:35:13,270 Ako samo želim tekst unutar oglasi, 487 00:35:13,270 --> 00:35:18,950 Sam mogao ulazni prostor div p Prostor Prostor vijek trajanja Prostor, 488 00:35:18,950 --> 00:35:21,570 i da bi se postigao isti efekt. 489 00:35:21,570 --> 00:35:26,320 A za one od vas koji su zainteresirani u korištenju regularnih izraza, 490 00:35:26,320 --> 00:35:31,670 to se događa da također vam dati redoviti Izraz vrsta string ulaza 491 00:35:31,670 --> 00:35:34,900 pronaći stvari pokušavate pronaći. 492 00:35:34,900 --> 00:35:44,130 >> Dakle, postoji još jedan cool lik od Kimono gdje možete numerirane stranice, 493 00:35:44,130 --> 00:35:47,780 koji je ne samo mogu ostrugati rezultati ove stranice, 494 00:35:47,780 --> 00:35:50,890 Mogu kliknite na ovaj mali Gumb ovdje, numeriranje stranica, 495 00:35:50,890 --> 00:35:55,580 odrediti gumb koji bi odvedi me na sljedeću stranicu, 496 00:35:55,580 --> 00:35:59,500 i onda će samo znam da to može ponoviti na sljedećoj stranici 497 00:35:59,500 --> 00:36:04,120 a onda struže sve the-- dokle jer je isti format course-- 498 00:36:04,120 --> 00:36:06,110 Scape sve te linkove, kao dobro. 499 00:36:06,110 --> 00:36:15,230 >> Pa zato Kimono ne želi raditi s Craigslist, što smo učinili 500 00:36:15,230 --> 00:36:19,790 je sam Kimonofied Harvard Crimson. 501 00:36:19,790 --> 00:36:29,380 Ja sam neke od vrsti izvukao Top opremljenog članaka, potvrdili ovdje. 502 00:36:29,380 --> 00:36:33,090 Recimo sve to. 503 00:36:33,090 --> 00:36:35,830 Ja sam sastavio ovaj API za vas ispred vremena. 504 00:36:35,830 --> 00:36:38,990 Ali inače ono što će učiniti je li bi samo kliknite Gotovo. 505 00:36:38,990 --> 00:36:40,940 Unesite Vaše podatke API. 506 00:36:40,940 --> 00:36:45,260 Postavite ga bilo automatizirani ili ručno puzati. 507 00:36:45,260 --> 00:36:48,460 Tako možete ažurirati svoje Podaci svakih 15 minuta, 508 00:36:48,460 --> 00:36:50,330 tjedno, dnevno, što god želite. 509 00:36:50,330 --> 00:36:51,160 Imenujte API. 510 00:36:51,160 --> 00:36:52,790 Napravite API. 511 00:36:52,790 --> 00:36:58,460 Za svoju korist, što sam stvorio Crimson prednju stranicu API već. 512 00:36:58,460 --> 00:37:02,480 >> Dakle, vi samo stvoriti računa na Kimono, i to 513 00:37:02,480 --> 00:37:06,240 će pohraniti sve svoje API za vas. 514 00:37:06,240 --> 00:37:10,330 Dakle, u biti to je sve svoje Odvojite različite ogrebotina. 515 00:37:10,330 --> 00:37:18,250 >> Dakle, ako ćemo gledati ovdje, ovo je Mišljenja linkovi koje sam prikupljenih. 516 00:37:18,250 --> 00:37:21,290 To su sadržanu linkovi koje sam prikupljenih. 517 00:37:21,290 --> 00:37:24,090 A to su najviše čitaju linkovi koje sam prikupljenih 518 00:37:24,090 --> 00:37:27,120 ovog najnovijeg API Scape. 519 00:37:27,120 --> 00:37:30,790 >> Dakle, ako možete vidjeti ovdje, to će biti predstavljena, 520 00:37:30,790 --> 00:37:34,130 to će biti mišljenje, u ovom slučaju, 521 00:37:34,130 --> 00:37:38,150 Ja sam ih kombinirati sve u jednu zbirku. 522 00:37:38,150 --> 00:37:42,780 Ali ako se samo poigrati s njim malo, možete ga podijeliti 523 00:37:42,780 --> 00:37:45,090 i podijeliti ga ipak želite kao čeznuti 524 00:37:45,090 --> 00:37:47,520 kao oblikovanje je malo drugačija. 525 00:37:47,520 --> 00:37:51,320 >> Samo se poigrati s tim, puzati postavljen, jedan od nedostataka 526 00:37:51,320 --> 00:37:58,120 je možete samo dopuzati 25 stranica u isto vrijeme. 527 00:37:58,120 --> 00:38:00,430 To je jedan od ograničavajućih faktora. 528 00:38:00,430 --> 00:38:03,060 Ali ovdje, ako ga postaviti na ručno puzati, ovaj 529 00:38:03,060 --> 00:38:06,100 je, kako se to može reći ažurirati svoje podatke. 530 00:38:06,100 --> 00:38:11,010 A ovdje možete vidjeti povijest indeksiranja od svega što ste puzati. 531 00:38:11,010 --> 00:38:16,000 I vi možete vratiti, prijavite se, poigrati sa svim različite načine 532 00:38:16,000 --> 00:38:20,340 koje možete mijenjati i koristiti vaše podatke. 533 00:38:20,340 --> 00:38:24,580 >> Kimono može se postaviti na struže veze unutar veze. 534 00:38:24,580 --> 00:38:29,700 A što bi to od prvog struganje popis linkova, 535 00:38:29,700 --> 00:38:35,390 a zatim koristiti taj API kao skočiti točku za još API 536 00:38:35,390 --> 00:38:36,710 koje stvaraju scenarij. 537 00:38:36,710 --> 00:38:42,040 No, to je više nego komplicirano što ćemo dobiti u danas. 538 00:38:42,040 --> 00:38:44,270 >> Dakle, to je Kimono. 539 00:38:44,270 --> 00:38:46,980 Razgovarat ćemo o prednostima i kontra Nokogiri i kimona. 540 00:38:46,980 --> 00:38:50,380 >> Nokogiri, to je stvarno brzo. 541 00:38:50,380 --> 00:38:51,640 To je lako provjeriti. 542 00:38:51,640 --> 00:38:55,910 Možete samo stavlja sve na konzola, jednostavan za konfiguriranje. 543 00:38:55,910 --> 00:39:00,400 Možete odlučiti upravo ono Želite li struže i pohraniti. 544 00:39:00,400 --> 00:39:02,060 Nema ograničenja stranica. 545 00:39:02,060 --> 00:39:08,010 Zapravo sam ga koristiti za struže kao 1800 Južnoafrički školske web stranice 546 00:39:08,010 --> 00:39:10,870 za e-poštu za stažiranje koje sam učinio. 547 00:39:10,870 --> 00:39:16,060 >> Dakle, to je moguće, ali najbolje prakse da bi se razdvojili skriptu. 548 00:39:16,060 --> 00:39:19,310 Jer ako to ne uspije, onda ne dobiti ništa. 549 00:39:19,310 --> 00:39:22,790 Ali ako sto, možda 200 stranica u isto vrijeme, 550 00:39:22,790 --> 00:39:27,840 onda imate neke šanse od najmanje uzimajući to parče, pogotovo 551 00:39:27,840 --> 00:39:30,280 ako imate loše internet. 552 00:39:30,280 --> 00:39:32,720 >> Nažalost, to može samo struže HTML. 553 00:39:32,720 --> 00:39:35,190 Dakle, ako imate dinamički učitava pages-- 554 00:39:35,190 --> 00:39:39,480 a ja ću vam pokazati primjer kao kajak u A second-- 555 00:39:39,480 --> 00:39:42,270 Nokogiri žalost Ne mogu da struže. 556 00:39:42,270 --> 00:39:45,700 >> Ali Kimono je jednostavan za korištenje. 557 00:39:45,700 --> 00:39:48,330 Kao što ste vidjeli, to je bitno točka i kliknite. 558 00:39:48,330 --> 00:39:50,260 To može struže JavaScript. 559 00:39:50,260 --> 00:39:53,790 Nažalost, tu je maksimalno na koliko stranica možete struže. 560 00:39:53,790 --> 00:39:55,710 Ponekad je malo teško konfigurirati. 561 00:39:55,710 --> 00:39:57,240 Ona dobiva zbunjeni. 562 00:39:57,240 --> 00:40:00,920 No, to je definitivno nešto za razmisliti 563 00:40:00,920 --> 00:40:05,930 ako ne pokušavate imati super robustan održivi ogrebotina. 564 00:40:05,930 --> 00:40:09,010 Ako samo želite dobiti sve off stranice brzo, 565 00:40:09,010 --> 00:40:10,970 onda Kimono je stvarno dobar alat za korištenje. 566 00:40:10,970 --> 00:40:16,490 I kao što sam spomenuo prije, postoji napredna značajka Kimono 567 00:40:16,490 --> 00:40:19,260 koja vam kako pokazuje pristupiti jedinstveni HTML 568 00:40:19,260 --> 00:40:24,210 element, koji je super korisna i Ako radite u Nokogiri. 569 00:40:24,210 --> 00:40:30,370 >> Dakle, ako ćemo ići u Kajak stranicama, za Primjerice, možete vidjeti tamo is-- 570 00:40:30,370 --> 00:40:31,750 ili možda ne možete vidjeti. 571 00:40:31,750 --> 00:40:38,910 Ali ako sam vam pokazati URL za kajak, to je zapravo samo URL izvor. 572 00:40:38,910 --> 00:40:43,800 Ovo je URL prije bude izmijenjen bilo kakvim JavaScript skripti 573 00:40:43,800 --> 00:40:45,350 da su događa. 574 00:40:45,350 --> 00:40:52,420 I to će izgledati drugačije iz uvid element. 575 00:40:52,420 --> 00:40:55,940 >> Dakle, ako idete kroz i vi podudaraju se Pregledajte element 576 00:40:55,940 --> 00:41:00,340 kod izvornom kodu, to je zapravo će biti drugačiji. 577 00:41:00,340 --> 00:41:05,640 A to je u biti razlog zašto Nokogiri Ne možete strugati dinamički učitava web stranice. 578 00:41:05,640 --> 00:41:08,810 Budući da je Nokogiri struganje URL izvor, 579 00:41:08,810 --> 00:41:16,310 dok Kimono je zapravo struganje što ste bitno 580 00:41:16,310 --> 00:41:18,260 gledajući u odabranim element. 581 00:41:18,260 --> 00:41:23,880 >> Dakle, ako sam proći i ja pokušati Kimonofy kajak, 582 00:41:23,880 --> 00:41:26,600 Ja zapravo mogu proći kroz i odaberite cijenu. 583 00:41:26,600 --> 00:41:32,360 To je malo teže, iu ovom slučaju, to je 584 00:41:32,360 --> 00:41:36,600 zapravo vidim tu cijenu što se razlikuje od njih. 585 00:41:36,600 --> 00:41:41,110 Dakle, dok možete configure-- ili ako se to ne dinamički učitava, 586 00:41:41,110 --> 00:41:43,620 možete konfigurirati Nokogiri da se sve to. 587 00:41:43,620 --> 00:41:48,230 >> Budući da je oblikovanje je malo različiti za ovaj unos 588 00:41:48,230 --> 00:41:51,280 kao što je u odnosu na ostatak od njih, a možete pogledati ovdje 589 00:41:51,280 --> 00:41:54,830 to je zapravo otišao i Odabrane sve cijene leta. 590 00:41:54,830 --> 00:42:01,200 Možda želim odabir vrijeme leta, kao dobro. 591 00:42:01,200 --> 00:42:04,700 I ja mogu proći i vrsta konfigurirati da. 592 00:42:04,700 --> 00:42:06,950 Ne želim to. 593 00:42:06,950 --> 00:42:10,200 Samo želim vrijeme za sljedeći let je. 594 00:42:10,200 --> 00:42:17,030 I onda nakon par njih prolazi kroz, on dobiva sliku. 595 00:42:17,030 --> 00:42:19,080 Tako lijepa Kimono je pametna. 596 00:42:19,080 --> 00:42:21,900 To jednostavno nije toliko robustan. 597 00:42:21,900 --> 00:42:26,710 >> Postoje neki drugi alternative koje možete koristiti. 598 00:42:26,710 --> 00:42:31,600 A ja ću vam pokazati ih ovdje. 599 00:42:31,600 --> 00:42:35,790 Ako ste više ugodno u Python umjesto Ruby možda, 600 00:42:35,790 --> 00:42:39,290 postoji knjižnica zove Lijepa juha. 601 00:42:39,290 --> 00:42:40,430 Možete ga koristiti. 602 00:42:40,430 --> 00:42:42,270 To je vrlo slično Nokogiri. 603 00:42:42,270 --> 00:42:44,620 Ima još nekoliko mogućnosti. 604 00:42:44,620 --> 00:42:52,160 Možete pronaći HTML oznake i zatim premjestiti gore ili pomicanje u stranu. 605 00:42:52,160 --> 00:42:54,690 >> Postoji PyQt. 606 00:42:54,690 --> 00:42:57,820 To zapravo može češati dinamički mjesta, jer to je vrsta 607 00:42:57,820 --> 00:43:02,540 je WebKit koji se pretvara da je preglednik ne postoji zapravo 608 00:43:02,540 --> 00:43:03,670 kao preglednik. 609 00:43:03,670 --> 00:43:07,490 Dakle, to bi čekati sve JavaScript učitati, a zatim 610 00:43:07,490 --> 00:43:09,560 otići i pokušati struže stranice. 611 00:43:09,560 --> 00:43:13,560 >> Ako želite staviti s Ruby, što može ići jednu razinu gore od Nokogiri. 612 00:43:13,560 --> 00:43:17,650 Možete koristiti Kapibara s priviđenje omot. 613 00:43:17,650 --> 00:43:22,910 A to zapravo može u biti napraviti istu stvar 614 00:43:22,910 --> 00:43:26,610 kao PyQt, što je to je WebKit. 615 00:43:26,610 --> 00:43:29,610 Ona čeka da JavaScript učitavanje prvi. 616 00:43:29,610 --> 00:43:33,340 Ako gusle okolo s njom dovoljno, čak možete dobiti da kliknete na stvari. 617 00:43:33,340 --> 00:43:42,780 >> Dakle, ako postoji link koji Nije klasična href gdje 618 00:43:42,780 --> 00:43:46,350 Put je lako dostupna i to je neka stvar koja otkriva JavaScript 619 00:43:46,350 --> 00:43:49,490 jedan klik, možete zapravo učiniti. 620 00:43:49,490 --> 00:43:53,430 Više popularan knjižnica simulirati korisnika 621 00:43:53,430 --> 00:43:56,390 je u JavaScript, koji je PhantomJS. 622 00:43:56,390 --> 00:44:01,010 To očito može češati dinamički mjesta jer je to bitno 623 00:44:01,010 --> 00:44:04,270 pretvarajući se da Chrome bez korisničkog sučelja. 624 00:44:04,270 --> 00:44:09,970 >> I onda, naravno, najviše robustan, ali najsporiji opciju, 625 00:44:09,970 --> 00:44:13,260 je automatizacija Selen pregledniku. 626 00:44:13,260 --> 00:44:15,550 I na žalost, nećeš biti 627 00:44:15,550 --> 00:44:19,770 u mogućnosti to učiniti u vašoj CS50 IDE. 628 00:44:19,770 --> 00:44:24,140 Jer u suštini ono što Da li je to čizme svoj Chrome, 629 00:44:24,140 --> 00:44:27,090 Firefox, bez obzira preglednik koji želite koristiti, 630 00:44:27,090 --> 00:44:32,570 a prati možda miš pokret, što god upišete u, 631 00:44:32,570 --> 00:44:35,170 i to samo vrsta automatizira taj proces. 632 00:44:35,170 --> 00:44:42,070 Dakle, to je bio razvijen kao svojevrstan Web stranica za automatizaciju testiranje alata. 633 00:44:42,070 --> 00:44:45,910 No, puno ljudi koristi Selen struže web stranice 634 00:44:45,910 --> 00:44:49,990 da inače imaju puno poteškoća struganja 635 00:44:49,990 --> 00:44:53,700 s nekim od ovih drugih, brže alata. 636 00:44:53,700 --> 00:44:57,530 >> Dakle, to je sve što imam za web struganje. 637 00:44:57,530 --> 00:44:58,090 Zabavi se. 638 00:44:58,090 --> 00:45:01,762 639 00:45:01,762 --> 00:45:02,680 >> PUBLIKA: Pitanje. 640 00:45:02,680 --> 00:45:04,016 >> ROBERT KRABEK: Da. 641 00:45:04,016 --> 00:45:12,840 >> PUBLIKA: Postoji li mehanizam za hash web stranica, tako da bi u osnovi 642 00:45:12,840 --> 00:45:14,207 proći kroz to kasnije. 643 00:45:14,207 --> 00:45:15,040 ROBERT KRABEK: Da. 644 00:45:15,040 --> 00:45:21,530 Tako smo stavili u naše primjer, za obojicu, 645 00:45:21,530 --> 00:45:24,980 smo stavili cijeli web stranice u doc. 646 00:45:24,980 --> 00:45:31,260 I tako da bi mogao zapravo samo uzeti promjenjiva doc i pisati u datoteku. 647 00:45:31,260 --> 00:45:35,490 Dakle, ako sam htio, mogao sam napišite ga kao HTML datoteku, 648 00:45:35,490 --> 00:45:39,280 a onda umjesto korištenja OpenURI i Curl zahtjev, 649 00:45:39,280 --> 00:45:43,520 onda sam samo mogla otvoriti doc HTML i onda tražiti to. 650 00:45:43,520 --> 00:45:47,960 >> PUBLIKA: Ali, možete li sačuvati vrsta online iskustvo 651 00:45:47,960 --> 00:45:48,930 dok radite izvanmrežno. 652 00:45:48,930 --> 00:45:51,013 Na primjer. kada ste leti za nekoliko sati, 653 00:45:51,013 --> 00:45:54,070 Želim osnovi Arhiva cijeli web stranice. [NEČUJAN] 654 00:45:54,070 --> 00:45:58,780 >> ROBERT KRABEK: Da, to je exactly-- pa doslovce što to radi 655 00:45:58,780 --> 00:46:03,010 je to da sve da bi se na ovom URL. 656 00:46:03,010 --> 00:46:11,280 Dakle, ako smo trčali Curl, to je da sve ove HTML, 657 00:46:11,280 --> 00:46:14,590 i to je to spremanje unutar promjenjivog doc. 658 00:46:14,590 --> 00:46:17,290 Pa onda možete raditi što god želite učiniti s doc. 659 00:46:17,290 --> 00:46:18,575 Možete reproducirati ga u datoteku. 660 00:46:18,575 --> 00:46:19,950 PUBLIKA: Ali to nije povezao. 661 00:46:19,950 --> 00:46:20,780 To nije dinamična. 662 00:46:20,780 --> 00:46:22,770 To nije rekurzivna, zar ne? 663 00:46:22,770 --> 00:46:24,016 Vidite što mislim? 664 00:46:24,016 --> 00:46:28,359 Pokušavam osnovi vrsta skraćenog cijeli web stranice na moj hard disk 665 00:46:28,359 --> 00:46:31,150 tako da sam zapravo mogao učiniti za nekoliko sati bez interneta. 666 00:46:31,150 --> 00:46:32,025 >> ROBERT KRABEK: Tako je. 667 00:46:32,025 --> 00:46:37,140 Dakle, ako sam had-- pa gdje je moj file I / O? 668 00:46:37,140 --> 00:46:47,766 Dakle, to je file I / O. Tako kažu, umjesto to, ja to nazivam craigslist.html. 669 00:46:47,766 --> 00:46:52,620 670 00:46:52,620 --> 00:46:53,940 Ja bih otvoriti to. 671 00:46:53,940 --> 00:46:59,020 Ja bih stavlja doc u nju. 672 00:46:59,020 --> 00:47:00,470 Ja zatvorite datoteku. 673 00:47:00,470 --> 00:47:05,410 I onda samo zato što je CS50 IDE na oblaku, koji je god. 674 00:47:05,410 --> 00:47:07,710 Mogu ići ovdje. 675 00:47:07,710 --> 00:47:09,320 Ja mogu preuzeti datoteku. 676 00:47:09,320 --> 00:47:11,830 A onda bi to bilo na moj hard disk. 677 00:47:11,830 --> 00:47:13,930 Dakle, možete to učiniti na taj način. 678 00:47:13,930 --> 00:47:18,830 Ili, ako ste kod kuće, a ne pomoću CS50 IDE, kao sublimnog ili nešto, 679 00:47:18,830 --> 00:47:21,900 ovo je čak i lakše, jer ovo je sve dostupno na lokalnoj razini, 680 00:47:21,900 --> 00:47:23,020 Nije vezan za internet. 681 00:47:23,020 --> 00:47:24,720 >> PUBLIKA: Vidim. 682 00:47:24,720 --> 00:47:26,580 Ovo je za jedan određeni problem. 683 00:47:26,580 --> 00:47:30,410 Možete li to učiniti rekurzivno, tako da ići nekoliko slojeva duboko takve stvari? 684 00:47:30,410 --> 00:47:33,801 >> ROBERT KRABEK: mogu skinuti mape kao i, ako je to ono što tražimo. 685 00:47:33,801 --> 00:47:34,426 PUBLIKA: Da. 686 00:47:34,426 --> 00:47:39,890 687 00:47:39,890 --> 00:47:41,440 >> ROBERT KRABEK: cool. 688 00:47:41,440 --> 00:47:43,182