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