[Daqq tal-mużika] ROBERT KRABEK: Hello, guys. Jisimni Robert Krabek, u I se jkunu tagħlim inti guys kif jinbarax il-web bl Nokogiri, li hija librerija Ruby, u Kimono, li hija estensjoni Chrome. Allura l-ewwel hemm koppja affarijiet li inti jista 'jagħmel jekk forsi inti kont qed tagħmel l-psets s'issa u workspace tiegħek hija jkollna ftit sħiħa. Nistgħu ngħidu biss tmur u toħloq spazju ta 'xogħol ġdid għalik li biss tagħmel marka proġett ġdid fl. Mela jekk inti tixtieq li tkompli jaħdmu fil-template CS50 ID li inti bħalissa għandhom, tħossok liberu, u inti tista 'sempliċement jinstallaw Nokogiri ma CFLAGS gem equals-- jinstallaw nokogiri. Iżda altrimenti jien ser nuruk kif jiġu stabbiliti waħda ġdida up. U allura dan huwa essenzjalment twaqqa roti ta 'taħriġ aktar. U int kodifikazzjoni bħal li kieku inti biss kodifikazzjoni Sublime jew xi ħaġa. Mela jekk aħna bidla li fuq. Allura ngħid dan huwa attwali tiegħek CS 50 ID. Tista 'biss tmur għall Cloud9 hawn. Inti tista 'tmur għall dashboard tiegħek. Għandu jtella postijiet tax-xogħol tab. U allura inti tista 'sempliċement ikklikkja hawn, Oħloq Workspace Ġdid. Isem workspace ġdida tiegħek, forsi test, jew brix. U mbagħad ikklikkja dan tab custom hawn, minflok il-tab CS50 templates. U allura inti tista 'biss tmur u toħloq spazju ta 'xogħol ġdid. Stajt diġà ħolqot workspace hawn. Allura aħna ser tkun qed taħdem ma 'dan. U jekk inti ħolqot ġdida workspace dan bl-tab Custom, inti tista 'sempliċement tip gem jinstallaw nokogiri, li mhux se hawnhekk. OK, huwa ftit iffriżat. Iżda int tista tip gem tinstalla nokogiri. U li għandu jkun dak kollu li hemm l-installazzjoni. Kif għidt qabel, jekk int xorta jaħdmu fil-CS50 tiegħek template ID, inti biss jeħtieġ li tip CFLAGS ugwali gem jinstallaw nokogiri. U stajt diġà installat hawnhekk so I mhux se tagħmel dan. Iżda għal dawk li ġejja flimkien, tħossok liberu li jagħmel hekk. Allura ladarba inti ħadthom ltqajna Nokogiri tiegħek workspace jew il-librerija installat, Jien ser jagħtuk ftit ta 'kors tiġrifa fil-sintassi Ruby minħabba Nokogiri hija librerija Ruby. Allura ikollok bzonn li tkun taf xi bażika Sintassi Ruby għall-ħidma ma Nokogiri. Allura xi differenzi bażiċi minn dak li qed jintużaw biex forsi jekk inti kont qed taħdem s'issa fi ftit C u PHP, inti tiddikjara varjabbli bl-ebda tip. Inti ma jużawx semicolons, li huwa tip ta 'eżenzjoni. M'hemm l-ebda parentesi issa madwar favur jew waqt loops, per eżempju. Inti sempliċiment għandek blokk ta 'kodiċi, u imbagħad inti tpoġġi tmiem fl-aħħar ta 'dak. M'hemm l-ebda plus plus jew minus nieqes, hekk biss jafu li meta int tagħmel għal-linji, biss ugwali plus u minus ugwali. U minflok ta 'hash jinkludu, inti ser tuża bżonn u mbagħad ikun x'ikun librerija jippruvaw tagħbija fil-programm tiegħek. Ruby ma tkunx lingwa ikkompilati. Allura dak eżenzjoni ieħor. Huwa aktar simili għal PHP fejn huwa lingwa interpretati. Inti tista 'taħdem kwalunkwe iskrittura Ruby li tikteb bil Ruby segwiti bl-isem ta iskrittura tiegħek jew programm. Li turi li huwa programm Ruby, inti biss jispiċċaw bl .rb minflok .c. U hemm varjabbli arrays daqs medju Ruby, li huwa super konvenjenti meta int brix u forsi tixtieq li tehmeż data li inti stajt mibruxa fi array. Inti ma għandekx malloc firxa ġdida u kopja tal-firxa antika fil-firxa ġdida. Tista 'biss tehmeż ma' iż-żewġ sinjali vleġġa. U ma jkunx hemm Chars, hemm biss kordi ittra waħda. Allura li għandu jkun ftit aktar faċli. Allura aħna ser biss jagħtuk xi eżempji ta 'xi sintassi bażika Ruby. Allura hawnhekk tista 'tara li minflok l mmejla mmejla, biex jikkummenta fil Ruby, inti biss tuża s-sinjal lira. U d-dikjarazzjoni varjabbli, inti biss it-tip il-varjabbli ugwali xi trid il-varjabbli li jkun. Dawn jistgħu jiġu kordi. Inti jista 'jkollhom firxa, li inti timla ma 'valuri. tpoġġi u stampi huma simili. Għall-għanijiet tagħna, il- unika differenza hija verament li tpoġġi, li stands għall tpoġġi, biss tpoġġi linja ġdida karattru fuq kwalunkwe int istampar. Mela jekk aħna nagħtu żgħir dimostrazzjoni hawn, nistgħu run dan with-- tiftaħ terminal ġdid. Tista 'tara kollha ta' dawn fajls li huma terminal tiegħi. U jekk I biss run Ruby, intro.rb ruby, huwa tpoġġi ħamsa Hello Mather, Quincy, Carrier. Adams. Allura li kollox hemm li arrays jiddikjaraw. UDJENZA: Robert, inti tista 'tagħmel font tiegħek ftit akbar? ROBERT KRABEK: Iva. U nista 'zoom għaliex inti ma tistax zoom in to fonts terminali apparentement. Allura li kif inti print Varjabbli li terminal tiegħek. Tista 'wkoll tuża varjabbli ġewwa string. Allura reċentement fil-PHP, inti jista 'jkollok tgħallmu li hemm interpolazzjoni sekwenza. Mela jekk inti tagħti ħarsa hawn, jekk I tiddikjara tliet fatturi varjabbli, isem, librerija, u lingwa, u I tpoġġi, I jiktbu string, Hello, jiena. U allura minflok il-PHP verżjoni ta 'interpolazzjoni string li jistenna ftit aktar bħal dan, ikollok sinjal lira, u mbagħad Brace kaboċċi, u mbagħad l-isem tal-varjabbli. U li kif youd print, jiġifieri, ikun x'ikun l-isem varjabbli huwa. U allura inti tista 'ukoll concatenate kordi. Ruby jagħmilha super faċli bis-sinjal plus. Inti sempliċiment għandek string wieħed fuq ix-xellug flimkien ma 'varjabbli jew string ieħor flimkien ma 'sekwenza. Mela jekk jien Stampa din out, għandu biss jgħidu Hello, jien jisimni Robert. I se jkunu tagħlim inti nokogiri fil Ruby. U ejja biss jikkonfermaw li din huwa tabilħaqq l-intro ruby ​​case--. Hello, jien jisimni Robert. I se jkunu tagħlim inti nokogiri fil Ruby. Nimxu fuq, jekk id-dikjarazzjonijiet inkella, huwa ftit differenti minn dak li inti tista 'tintuża biex jekk inti kont qed taħdem C. Inti ma għandekx bżonn l-parentesi. Inti ma għandekx bżonn l-braces kaboċċi. U minflok ta 'ieħor jekk, huwa elsif concatenated. Allura fil hawn, jekk stajt iddikjarat x up hawn, kif nistgħu naraw, x għadu 5. Mela jekk x huwa inqas minn 3, dan ser tpoġġi żgħar. Jekk huwa inqas minn 7, medju, inkella kbar. Allura 5 huwa numru medju. U jien jintemm dan blokk ta 'kodiċi bi tmiem. Hawnhekk huwa tiegħi għal loop. U dan sintassi hija wkoll kemmxejn differenti. 0 sa ħamsa biss essenzjalment huwa li tkun iddikjarat li arrays '0 sa 5. Allura hemm ħames slots fl-array. U allura għal kull slot f'dak firxa, I se jkun inkrementazzjoni i. Għalhekk dan għandu jistampa 0 sa 5, jew 0-4. U dan għandu jistampa medju. U jien ser biss blaze permezz. You guys se jkollhom aċċess li dan il-kodiċi aktar tard. Allura inti guys tista 'taħdem din yourselves. Allura dan huwa loop tiegħek waqt bażiku. Dan se jkun biss istampar j, inkrementazzjoni sa l-1 sakemm aħna hit 5. Super malajr kors tiġrifa Ruby dwar kif jiktbu funzjoni. Minflok, jgħidu, int fattorjali numru, aħna biss għandhom def. U essenzjalment int tiddefinixxi funzjoni hawn. Dan se jkun l- isem tal-funzjoni, u dan huwa kwalunkwe varjabbli li inti tixtieq li tgħaddi fil-funzjoni. Inti jista 'jkollhom jekk noti fit. Inti tista 'ritorn. F'dan il-każ, aħna qed definizzjoni ta 'recursively funzjoni fattorjali implimentati. Allura aħna biss sejħa funzjonijiet fil Ruby bħal dan. Mela jekk jien stajt definit dan, I tista 'sejħa fattorjali, jgħaddu fi 3, u mbagħad 3 se jkun l-varjabbli numru li nista 'nuża fil-funzjoni. U dan to_s huwa biss ddawwar l- ritorn valur ta fattorjali fis-sekwenza. Inkella dan se tarmi żball qal oh, I ma tistax tistampa string-- għaliex kif tiftakar, tpoġġi jitqiegħed string-- għaliex dan fattorjali marret lura numru. Allura nistgħu jikkonvertu li għal string bħal tali. U bil-maqlub, inti tista 'wkoll jikkonvertu string għal numru sħiħ ma 'to_i. Allura tagħmel dak kollu super sempliċi, jekk I biss jikkummenta dan out, ħlief u għaddi l-funzjoni fattorjali. Għandna nkunu kapaċi biex tara li fattorjali ta '3 hija ta' 6. U li huwa tabilħaqq veru. Allura dak kors qasir u intensiv tiegħek fil Ruby. U issa li taf Ruby, nistgħu mmorru fuq għall-Nokogiri bażiku brix stabbilit. Essenzjalment kull ma għandek tagħmel hu li, fil Ruby, jeħtieġu l-libreriji. U għal skopijiet tagħna aħna ser tkun qed tuża l- librerija OpenURI kif ukoll Nokogiri. U allura dak li do-- u inneħħu jagħtuk l-sintassi għall this-- huwa inti tiftaħ il-URL ħafna kif inti fil talba curl, li stands għall C URL. Allura inti tieħu l-URL tal il-websajt fil-kwistjoni. Inti jaħżnu varjabbli. U allura inti tista 'tfittex permezz ta' dak varjabbli għall tags HTML uniku bl-użu il-kmand .css. U allura inti tista output l- kontenut li kull fejn trid. Tista 'tibda fid-database. Inti tista output fil-fajl, jew anki sempliċement jistampaw l-iskrin. Allura aħna ser nuruk barraxa bażiku. Allura up here tista 'tara għandna jeħtieġu nokogiri, jeħtieġu open-URI. Sett bażiku tiegħek up, ejja sejħa hija dokument jew doc, ugwali Nokogiri :: HTML miftuħ, li hija l- kmand provduta lilna mill-OpenURI librerija. U aħna ser tkun tiftix, għal dawk ta ' inti li jistgħu jkunu jgħixu fl-quad, għall bikes li huma fil Boston elenkati fuq it-taqsima bike Boston Craigslist sit. Mela jekk inti ma jkunux familjari ma curl, I ser biss nuruk reali malajr dak curl se do. Jekk jien ridt li nikseb kollha tal-URL mill is-sit Craigslist, jekk I tip curl, hija biss miżbliet kollha tal-URL mis-sit roti Craigslist fuq terminal tiegħi. Li mhux partikolarment utli għaliex I ma tixtieq li manwalment jgħaddu u isibu l-ħaġa I infittex. Iżda biss sabiex inti tista ' tara li jien attwalment jużaw il-kodiċi lemin, jekk inti tħares fil-URL għall Craigslist fil bikes-- għal xi raġuni huwa ma nstabx. Jekk inti tħares lejn din il-paġna u inti tħares lejn il-URL, dan għandu jkun identiku għall- talba curl li jien biss tibgħat. U fil-fatt, dan huwa dak li qed maħżuna fil-varjabbli dok. Allura meta inti tmur lura għall-kodiċi tagħna, aħna jistgħu mbagħad joperaw fuq din il-varjabbli dok bl-użu .css. Allura ngħid jien ridt li nikseb kollha ta ' l-tags li huma span.txt, u l-tags ta 'ġewwa li tag. U għaliex tista irridu li tagħmel dan, I tisma int cry? Jekk aħna Spezzjona Element, tagħtik tqassim ta 'kif l-URL huwa strutturat. Jekk I iscroll isfel permezz hawn, tista 'tara dak li kull wieħed minn dawn differenti elementi jirrappreżenta. Hekk forsi I jridu aċċess dan l-element partikolari. Hekk jien jużaw iżviluppatur Chrome għodod għall Spezzjona Element. I jista 'jara stabbiliti hawn li din hija tag fi ħdan medda tag bi klassi ta 'txt. Allura dan gets tagħna ewwel operazzjoni li huwa span doc.css, li hija l-tikketta li I infittex fi ħdan dan kollu URL. U mbagħad txt topera ħafna bħal CSS ma meta int biss bil-miktub CSS fil-fajls HTML tiegħek billi tispeċifika klassi. Allura dan l-operatur partikolari se tispeċifika tag medda mal-klassi ta 'txt. U mbagħad jekk jien jħallu spazju, dan imbagħad se jmorru f'dak tag u mbagħad isibu tag f'dak. Mela jekk jien biss jippreżentaw dan lill il terminal, I għandu tkun tista 'tara essenzjalment kollox li huwa fi ħdan il-medda tal-klassi txt. Allura aħna ser jagħtuk li go. ruby craigslist-barraxa. U fil-fatt li jagħtina dawn kollha tags tal-listi varji li fuq il-paġna Craigslist. Mela jekk immorru lura, nistgħu jibdlu din f'xi ħaġa ftit aktar utli. Forsi irridu biss il-links. Minħabba f'dan tag, I ser ukoll għandhom il-hyperlink tal-passaġġ li din il-paġna tmur għall. Mela jekk inti tħares lejn dan il-kodiċi hawn, dak I ser tagħmel hu minflok .css, I tista 'tmur at_css. U dan se biss jiksbu l-ewwel element ta 'dawn l-affarijiet. Mela jekk jien kienu li tagħmel dan fil- Kodiċi I biss murija minn qabel, minflok jirritornaw kollha ta 'dan, ikun biss jirritorna l-ewwel wieħed minn dawn. Allura li kif l-operatur at_css xogħlijiet. Allura aħna tixtieq li taħżen l- triq kollha ta 'l-ewwel tag. U għaliex se tagħtina a-- hekk aħna qed għadhom ser tuża .css. Iżda minħabba dan se jagħti us back firxa sħiħa ta 'tikketti, nous allons aċċess l-ewwel element. Allura dan huwa mod ieħor li inti tista aċċess għal kull element partikolari jekk inti jkollhom firxa ta 'elementi li huwa rritornat, għaliex inti jista 'jikkura xi ħaġa li prospetti .css bħala firxa, essenzjalment. U allura aħna qed tmur biex jaċċessaw il- attribut referenza Portugues ta 'dan. Mela jekk inti tagħti ħarsa, jekk int stenna verament qrib hawn, jekk inti biss essenzjalment tħares lejn il-bar URL, dan huwa t-triq li int se tkun brix. Allura jekk aħna biss run dan mill-ġdid, u kun żgur konna meħlusin. Tista 'tiċċekkja fid-dar. Dan fil-fatt logħbiet up ma 'din ir-rabta. Allura għaliex tista irridu li jużaw dan? Jekk inti tixtieq li jinbarax il-paġna u għandu paġna ta 'links bħal Craigslist ma, inti tista 'tixtieq li tmur imbagħad f'kull wieħed minn dawk ir-rabtiet u mbagħad jinbarax l kontenut ta 'dak li huwa eżattament dak li aħna qed tmur biex tagħmel. Allura ladarba inti għandek passaġġ bħala varjabbli, I m'għadhomx really kura dwar l-istampar out. I biss ħtieġa biex jaħżnuh bħala varjabbli. U allura nista 'aċċess ieħor paġna bl-istess mod I aċċess doc fl-ewwel post. Ħlief bil-URL, aħna qed tmur għall-użu ta 'interpolazzjoni string bħal I kien iddeskriva fil Ruby aktar kmieni li tehmeż il-passaġġ għall-aħħar tal-għerq. Allura dak li dan se tagħmel hu dan se jitqiegħdu fuq il-passaġġ li I mibruxa qabel u mbagħad tibdel din fi punt ġdid, tkun xi tkun tixtieq sejħa it-- first_listing, per eżempju. Imma jien ser jitilqu fuq partita għal issa, għaliex dan huwa dak li jien jużaw hawn. Allura ngħid jien ridt li nikseb-deskrizzjoni ta 'l-ewwel kollokament fl Craigslist. So I se jinżlu hawn. Nixtieq ikklikkja fuq Spezzjona Element għal darb'oħra, għaliex dan huwa d-deskrizzjoni. I d jinżlu hawn u tara jekk I tista 'ssib kif I jista jkunu kapaċi li jfittxu għal dan il-tikketta unika. U f'dan il-każ, hija għandha ID, li twassalna li mod jmiss tagħna ta 'tiftix għal tags, li huwa ma 'hashtag. Allura għal klassijiet, inti tista uża l-operatur dot. Allura txt hija tispeċifika klassi ta 'txt, billi l-hash jispeċifikax ID. Allura f'dan il-każ, l-tikketta hija taqsima, u l-ID huwa postingbody. Allura dan imur u jsib l first-- għaliex aħna qed użu at_css-- dan imur u isib l-ewwel element li jitla 'ma' l-tikketta tat-taqsima u l-ID tal postingbody. U allura inti tista 'aċċess l-element test ta 'dak l-oġġett lura ma' .text. U allura aħna jista 'jaħżen li fid-deskrizzjoni. Allura issa li għandna Deskrizzjoni varjabbli, aħna jista 'jkun kapaċi li tagħmel, jiġifieri, fajl I / O. So fajl I / O fl Ruby huwa simili ħafna għall-fajl I / O fl C fejn aħna jiftaħ fajl. Nistgħu tikteb lilha. U allura aħna ser jagħlaq dan il-fajl. Allura hawnhekk, aħna qed biss jissemmew il fajl, xi varjabbli arbitrarja. Nistgħu wkoll biss jitqiegħed dan hawn. Għandna varjabbli li aħna qed ħażna il-fajl miftuħ mal File.open. U aħna qed miktub lill dan il-fajl, hekk aħna miftuħa mal-operatur w. U allura aħna jitqiegħdu string fil- jippreżenta ma l-operatur .puts. U allura aħna tpoġġi l-varjabbli li aħna jridu jiktbu għall-fajl f'dak. U allura aħna biss mill-qrib il-fajl. Mela jekk immorru quddiem u run dan, dan għandu jipproduċi dokument ma description.txt li se jkollhom din id-deskrizzjoni fi ħdanu. Mela jekk I run it-- ebda. Huwa magħmul fajl test bil- wieħed jittama, l-istess ħaġa. Allura hemm seta 'kien kollokament ġdid li l-toħroġ filwaqt I kont qed jitkellem. U fil-fatt jidher qisu kien hemm. Mela jekk immorru għal dan bike klassika, 1962-1966, li jidher li jaqblu. U hemm inti tmur. Allura dak l-aktar bażika funzjonalità ta 'brix. Jista 'jkollna minflok biss bil-miktub lill dan il-fajl, nistgħu żid affarijiet għal firxa. Mela jekk jien niddikjara tliet matriċi, titolu, prezz, u deskrizzjoni. U aħna qed joperaw fuq l-oġġett dok issa. Aħna tista 'tmur permezz u isibu kollha ta 'l span.txt. U ftakar, dan jirritorna firxa tal-punti kollha li ssib. U mbagħad fl Ruby, inti tista 'biss tuża .Kull li jtenni permezz ta 'kull oġġett mill-firxa. U allura għal kull oġġett, Jien biss ser sejħa hija rabta, minħabba li l essenzjalment dak li hu. Mela jekk nressaq kull link.css dot a.hdrlnk, dan huwa attwalment għaddejjin mar-rabta u s-sejba fi ħdan din ir-rabta ieħor Element HTML u l-klassi korrispondenti. Mela jekk irridu niftakru dak din kienet, il-span.txt, inti tista see- let me biss jmorru lura quick-- reali fi ħdan span.txt għandna ħafna ta 'klassijiet oħra. Allura ġewwa span.txt, aħna qed tfittex għal tag bi hdrlnk klassi. So let me biss issib li għalik guys reali malajr. Allura tista 'tara hawn, dan huwa a tag li fi ħdan il-medda ta 'klassi txt li għandha l-hdrlnk klassi. U dan huwa tabilħaqq dak aħna qed tipprova tikseb. Allura aħna issa qed tipprova taħżen kollha ta 'dawk ir-rabtiet ġewwa l-titolu. U allura aħna qed tmur biex jistampaw barra kull wieħed minn dawk ir-rabtiet. Le, sorry. Aħna qed tmur biex jistampa il-prezz ta 'kull wieħed minn dawn. Mela ejja jimxu dan verament malajr u ara dak li tagħmel. Allura dan biss bażikament marru permezz kull wieħed mill-links imbagħad, għamilt aċċess għas-tikketta in kwistjoni, u mbagħad miġbud 'il barra l-prezz. U ma li għaliex wara inti għandek kollox fit-titolu, konna biss maħżuna it-titolu hemmhekk. Imxejna biss maħżuna l-link fi ħdan it-titolu firxa. U f'dan għat-tħaddim loop, fejn minflok tmur għall a.hdrlnk, aħna qed tfittex għal span.price. Mela jekk I tista 'biss verament malajr issib il-prezz, jekk inti jispezzjona l-element, tkun taf tara li din hija span mal-klassi ta 'prezz. U li essenzjalment dwar kemm aħna qed jkollna l-prezz hemmhekk. Allura dak l-tassew każ bażiku ta 'brix. Thats kif inti tikseb kollha l-elementi fuq paġna li, jiġifieri, inti diġà taf il-URL tal. Mela jekk irridu jiksbu ftit aktar fil-fond, nistgħu jinbarax paġni fi ħdan il-paġni. U għal dan l-eżempju, I ser tkun outputting għall-fajl CSV. Hekk jien jeħtieġu CSV up here minħabba Ruby ma, ġewwa fih innifsu, għandhom il-funzjonalità għal ftit output CSV fajls. Allura dak super sempliċi. Let me biss jmorru għall-ieħor. Aħna koperti fajl I / O. Allura dan huwa simili għal kif huwa fl C. U qabel nimxu fuq Kimono, I ser biss nuruk tassew mgħaġġla kif biex jinbarax siti fi ħdan sights. Allura aħna diġà tgħallmu kif li tiddikjara arrays fil Ruby. Hekk jien biss li tiddikjara mazz ta 'arrays arbitrarji li se nkun jaħżen id-data ġewwa. doc qed topera bl-istess mod kif għamlet fil-fajl preċedenti. Aħna qed tmur fi, konstatazzjoni kull wieħed mill-l span.txt. Aħna diġà jafu li. Dan huwa l-kontenitur li fih kull rabta tkun kollha tal-dejta li rridu. Allura hawnhekk dak li aħna qed tagħmel huwa għal kull rabta tal-klassi span txt, aħna qed tmur fil u aħna qed konstatazzjoni tal-tikketta, konstatazzjoni tal-ewwel element ta 'dak. Ftakar, .css prospetti firxa, sabiex inti tista 'mhux biss aċċess għaliha kif inhu. Aħna ser isibu l-ewwel element. Anki jekk huwa firxa ta 'wieħed oġġett, inti għandek tuża dan sintassi, u mbagħad iġbed il-attribut href. Allura għamilna dan qabel. Għalhekk dan għandu tfittex familjari. U hekk issa għandna firxa imsejħa mogħdijiet kollha ta 'links tagħna li aħna qed tmur jridu jużaw. Mela jekk ikollna dan firxa ta 'kull tal-mogħdijiet li aħna tixtieq li tuża, aħna mbagħad jistgħu joħolqu oġġett għal kull ta 'dawk il-paġni meta aħna miftuħa dik il-paġna. Allura kif aħna wkoll raw fuq l-sintassi qabel, fejn tagħmel interpolazzjoni string mal-passaġġ hawn, sabiex il-sintassi hija biss għall-passaġġ. U I jistgħu isem din varjabbli kwalunkwe isem arbitrarja. Dan huwa l-waħda importanti. Dan huwa l-firxa li tkun taf jkun aċċess kull element. Imma meta inti tgħidli għal passaġġ fil-mogħdijiet, dan ifisser għal kull element fil-mogħdijiet, sejħa hija triq, u juża dak. Dan huwa essenzjalment simili meta inti do a għal loop u tuża int i. Allura inti tista 'tittratta l-passaġġ bħala l- varjabbli li l-inkrementazzjoni. U mbagħad għal kull wieħed minn dawn, jmorru f'kull wieħed minn dawk ir-rabtiet. Għaliex aħna qed maħżuna fil-paġna partita, hekk aħna qed ħolqien ta 'paġna ġdida kull darba aħna jkollhom aċċess għaliha. U mbagħad fi ħdan dik il-paġna l-ġdida, issib span.postingtitletext, span.price, u mbagħad taqsima # postingbody. Aħna diġà koperti taqsima # postingbody meta ħarisna lejn id-deskrizzjoni. Allura nistgħu tmur tara fil-post Craigslist, jekk int biss tħares lejn it-titolu, tista 'tara up here, postingtitletext span. U hu għalhekk li huwa hemmhekk. U allura l-prezz, inti tista aċċess għaliha bil klassi ispan ta 'prezz. Allura aħna wkoll forsi tista tixtieq li taħżen il-URL. Allura aħna ser biss run dan għal darb'oħra, aħżen fil-firxa, għaliex jekk inti qed tfittex fuq Craigslist, int probabbilment se jridu mod li, jekk inti tara xi ħaġa li jinteressak, mur lura għal dak is-sit. Allura inti biss tixtieq li taħżen il-URL għal referenzi fini. Dan huwa biss essenzjalment sintassi ieħor għall-għall loop. I jistgħu biss do paths.each minflok ta 'għall-passaġġ fil-mogħdijiet b'indiċi. U dan sintassi hija Ruby for-- passaġġ huwa dak li għamilna up here, tiddikjara varjabbli għal kull oġġett. U indiċi iġib ruħu l-i fis-C għal-linji. Allura inti tista 'żżomm rekord ta 'dak l-indiċi huwa. Allura hawnhekk huwa biss ħaġa ftit konvenjenti għal meta int taħdem l-barraxa. Jekk inti qed brix mijiet ta 'paġni, biex tiżgura li mhuwiex mdendlin, se biss output, Jien aċċess din il-paġna, u l-iżgurar li huwa għadu għaddej. Iżda għall-għanijiet tagħna, għax hemm mitt oġġetti, Jien ser aċċess biss tlieta minnhom hekk li aħna ma jispiċċaw ta 'żmien hawn. Iżda qabel irridu jiksbu dan, jien biss ser nuruk verament malajr, I se jkun outputting-titolu, prezz, id-deskrizzjoni, u URL kull waħda mill-links li stajt mibruxa. U allura dan huwa biss il- sintassi għall-librerija CSV. Inti tiftaħ CSV. Dan huwa dak li jien ser sejħa tiegħu. Iftaħ bl tikteb do. U mbagħad CSV se jkun il-fajl li int inputjar kollox fis. Dan huwa biss kontroll sanità għall me li tkun taf li huwa taħdem. U dan huwa kontroll sanità tiegħi li tkun taf li huwa komplut. Hekk jien tqegħid titolu fi filliera fl l-CSV, prezz, url, id-deskrizzjoni, kollha fil ringieli fil-CSV. Hekk jekk immorru u run dan now-- u I biss kun żgur li stajt salvati it-- minflok ta 'ftit outputting lill-terminal, għandu jkollna CSV fajl li l-prodott. Allura hawn nistgħu naraw il-CSV fajl li kien prodott. Dan huwa l-output tal- zokk li jien biss dam. Kif tistgħu taraw hawn, paġna 0, 1, 2, 3 aċċess. Dawn huma t-titoli, prezzijiet, deskrizzjonijiet. U jekk inħarsu lejn din CSV fajl li konna ġġenerat, tista 'tara tiegħu outputted hawn. Dan mhux Excel, dan mhuwiex formattjati fir-ringieli u kolonni. Iżda int tista 'timmaġina kif jista 'jkun formattjati. CSV stands għall Comma Separated Values. Allura tista 'timmaġina dan jista' jkun filliera. U kull comma kieku jindikaw f'kolonna separata. Just kelma ta 'caution-- kultant int brix affarijiet bil-lott ta 'virgoli. Mela jekk inti qed outputting li fajl CSV, dan jista 'jkun ma joħroġ il- mod inti tista 'taħseb. Allura dak essenzjalment kollha hemm brix bażiku HTML paġni Nokogiri. Allura l-internet benesseri innovattiva billi għandha toħroġ ma 'ambjent aktar awtomatizzati u GUI verżjoni, għalkemm inqas robusta verżjoni ta 'brix diversi websites. U għal skopijiet tagħna I ser tkun turi estensjoni Chrome imsejjaħ Kimono. U kull ma għandek tagħmel huwa inti jinnaviga għall-paġna li inti tixtieq li jinbarax. Tikklikkja fuq qasam ta 'interess. Inti jikkalibra l-oqsma, minħabba li se awtomatikament jiskopru dak li jidhirlu inti tixtieq li tkun brix, u mbagħad inti biss toħloq API. Hekk jekk konna biex juru fuq Craigslist, attwalment ma tkunx taħdem. U dan huwa dak I kienet se lura għall qal dwar dan mhux qed bħala robust. Hija għandha trouble ħolqien tal-API. Iżda bħala dimostrazzjoni ta 'dak li ser tagħmel, jekk inti jinstallaw l-estensjoni Chrome, kull ma għandek tagħmel huwa tikklikkja fuqha. Hija Kimonofies il-paġna, u mbagħad inti ikklikkja fuq il-ħaġa inti tixtieq li iskrittura. Mela jekk jien kienu li ikklikkja fuq li, ikun tenfasizza dak li jaħseb li nixtieq tkun brix off dik il-paġna. Hekk forsi I call dan listings. Dan huwa kemm punti I għazilt. U nista 'biss tikkonferma jew li tiċħad xi tal-listi oħra ssuġġeriti biex tiksbu biex iżżid ma ' dak li se jkun mibruxa. Allura issa nistgħu naraw hemm mitt oġġetti magħżula. Jekk irrid għandhom kamp ieħor li I wkoll jinbarax li huwa relatat ma 'dan, jgħidu Irrid li jinbarax l-prezz kif ukoll, allura I jistgħu jagħmlu l-istess. Allura hawnhekk dimostrazzjoni ta 'kif huwa ħafna inqas robusta, għaliex issa huwa picking up-belt minflok tal biss il-prezz li nixtieq. U issa huwa telgħet 200 affarijiet. Inti tista 'tmur lura u ħassar. Tista 'tipprova mill-ġdid. Imma l-ebda garanziji. Dan huwa kif taħdem din kultant. Kif qed taraw hawn, issa jgħid 96 up here. Huwa telgħet ħafna mill-links li inti tixtieq li jinbarax, iżda mhux neċessarjament kollha kemm huma. Għodda oħra utli ta 'Kimono għalkemm huwa inti tista 'tmur għall Features Avvanzata hawn, mur Avvanzata, u se nuruk it-tqassim tal-unika mod għall-aċċess tal-HTML tags li inti tixtieq li jinbarax. Allura għall-elenkar, jekk inti tħares lejn hawn, jekk ikollok aċċess span p div jifirxu fuq, inti tista 'attwalment biss użu dan fil-kodiċi Nokogiri tiegħek, fejn qabel kellna span.txt għall-aċċess kull wieħed mill-listi. Jekk I biss jixtiequ-test fi ħdan il-listi, I tista input ispazju div p span ispazju ispazju span spazju a, u tilħaqx l-istess effett. U għal dawk minnkom li huma interessati fl-użu espressjonijiet regolari, dan jiġri wkoll jagħtik l-regolari espressjoni tip ta 'spag għall-input biex issib l-affarijiet inti qed tipprova ssib. Allura hemm fattur ieħor jibred ta 'Kimono fejn inti tista paginate, li mhux biss nista jinbarax ir-riżultati ta din il-paġna, I tista 'tikklikkja fuq din ftit buttuna hawn, numerazzjoni, jispeċifikaw il-buttuna li jieħdu me għall-paġna li jmiss, u mbagħad se biss jafu li jista jtenni għall-paġna li jmiss, u mbagħad jinbarax kollha the-- sakemm kif huwa l-istess format tal course-- zokk kollha ta 'dawk ir-rabtiet ukoll. Allura għaliex Kimono ma tridx taħdem ma Craigslist, dak li aħna ghamilt huwa Stajt Kimonofied l Crimson Harvard. Stajt miġbud 'il barra xi wħud mill-tip ta' top dehru artikli, jikkonfermaw hawn. Say dawn kollha. Stajt kkompilata din API għalik qabel iż-żmien. Iżda altrimenti dak li inti tagħmel huwa inti biss ikklikkja Magħmul. Daħħal id-dettalji API tiegħek. Tistabbilixxi li kemm jitkaxkru awtomatizzat jew manwali. Allura inti tista 'taġġorna tiegħek data kull 15 minuti, kull ġimgħa, kuljum, xi trid. Isem API tiegħek. Oħloq il-API. Għall-benefiċċju tiegħek, stajt ħolqot il Crimson paġna API quddiem diġà. Allura inti biss toħloq kont fuq Kimono, u se taħżen APIs kollha tiegħek għalik. Allura essenzjalment li kollox tiegħek scrapes differenti separati. Mela jekk inħarsu hawn, dan huwa l- links opinjonijiet li stajt miġbura. Dawn huma l-dehru links li stajt miġbura. U dawn huma l-aktar taqra links li stajt miġbura minn dan zokk API aktar riċenti. Mela jekk inti tista 'tara hawn, dawn għandhom ikunu l dehru, dawn jistgħu jkunu l-opinjonijiet, li f'dan l-eżempju, Stajt kkombinahom kollha fi ġbir wieħed. Imma jekk inti biss play madwar miegħu ftit, inti tista 'tinqasam it up u jaqsamha up madankollu inti tixtieq li sakemm bħala l-ifformattjar hija kemmxejn differenti. Just biex play madwar ma 'dan, il- jitkaxkru stabbilit, wieħed mill-aspetti negattivi huwa inti tista 'biss jitkaxkru up 25 paġni kull darba. Din kienet waħda mill-fatturi li jillimitaw. Iżda hawnhekk, jekk int tkun qed tissettja li jitkaxkru manwali, din huwa kif inti tista 'tgħid dan li taġġorna d-data tiegħek. U hawn inti tista 'tara l-istorja crawl tiegħek ta 'dak kollu li inti stajt crawled. U inti guys tista 'tmur lura, jiffirmaw, play madwar ma 'l-modi differenti li inti tista 'timmodifika u tuża data tiegħek. Kimono jistgħu jiġu stabbiliti biex jinbarax links ġewwa links. U inti ser jagħmlu hekk billi l-ewwel brix lista ta 'links, u mbagħad tuża dik API bħala jaqbżu off point għal API ieħor li inti toħloq l-iskrittura. Imma dak li aktar ikkumplikat minn dak li aħna qed tmur biex tikseb fis llum. Allura dak Kimono. Aħna ser nitkellmu dwar il-vantaġġi u liżvantaġġi ta Nokogiri u Kimono. Nokogiri, huwa verament mgħaġġel. Huwa faċli biex tittestja. Tista 'biss tpoġġi xejn biex console, faċli biex jiġi kkonfigurat. Inti tista 'tiddeċiedi eżattament dak inti tixtieq li jinbarax u jaħżnu. M'hemm l-ebda limiti paġna. I attwalment użati biex jinbarax simili 1800 websajts iskejjel Afrika t'Isfel għal emails għal apprendistat li għamilt. Allura dak possibbli, għalkemm l-aħjar prattika Ikun li jifred l-iskrittura. Għaliex jekk ma jaħdimx, allura inti ma tikseb xejn. Imma jekk inti tagħmel mitt, forsi 200 paġna fi żmien, imbagħad inti għandek xi ċans ta 'mill-inqas jkollna biċċa biċċa, speċjalment jekk ikollok internet ħażina. Sfortunatament tista 'biss jinbarax HTML. Mela jekk għandek pages-- dinamiku mgħobbi u jien ser nuruk eżempju bħal Kayak fil-second-- Nokogiri sfortunatament ma tistax jinbarax dan. Iżda Kimono huwa wkoll faċli biex jintuża. Kif inti raw, huwa essenzjalment punt u kklikkja. Hija tista 'jinbarax JavaScript. Sfortunatament, hemm massimu li kemm paġni inti tista jinbarax. Xi kultant huwa ftit diffiċli biex jiġi kkonfigurat. Hija gets konfuż. Iżda huwa definittivament xi ħaġa li jikkunsidraw jekk int ma tipprova li jkollhom jinbarax maintainable super robusta. Jekk inti biss tixtieq li tikseb kollox off ta 'paġna malajr, allura Kimono huwa verament għodda tajba għall-użu. U kif semmejt qabel, hemm il-karatteristika avvanzati ta Kimono li turi kif għandek aċċess għall-HTML uniku element, li huwa super utli anke jekk inti qed jaħdmu fil Nokogiri. Allura jekk aħna tmur għall-sit Kayak, għal eżempju, inti tista 'tara hemm is-- jew forsi inti ma tistax tara. Imma jekk jien nuruk l-URL għall-Kayak, Dan fil-fatt huwa biss is-sors URL. Dan huwa l-URL qabel li jkunu modifikata bi kwalunkwe JavaScript skripts li jkunu għaddejjin. U li għaddej biex tfittex differenti milli jispezzjonaw l-element. Mela jekk inti tmur permezz u inti jaqblu l-Element Spezzjona kodiċi għall-kodiċi sors, huwa fil-fatt se tkun differenti. U dan huwa essenzjalment għaliex Nokogiri ma tistax jinbarax siti dinamiku mgħobbija. Minħabba Nokogiri hija tobrox il-għajn URL, billi Kimono huwa attwalment brix dak li int essenzjalment jaraw fil Agħżel Element. Mela jekk jien jgħaddu u I jippruvaw u Kimonofy Kayak, I tista 'attwalment tmur permezz u agħżel il-prezz. Huwa ftit diffiċli, u f'dan il-każ, huwa effettivament jaraw dan il-prezz kif differenti minn dawn. Allura billi inti tista configure-- jew jekk dan ma kinux dinamiku mgħobbi, inti tista 'tikkonfigura Nokogiri tikseb dawn kollha. Minħabba li l-ifformattjar hija ftit differenti għal din il-lista kif huwa mqabbla mal-bqija minnhom, u tista 'tara hawn Huwa fil-fatt marret u il-prezzijiet kollha magħżula titjira. Forsi I trid tagħżel ħin tat-titjira kif ukoll. UI tista 'tmur permezz u tip ta 'kkonfigurat dan. Ma rridx dan. I biss trid ħin tat-titjira li jmiss. U mbagħad wara ftit ta 'dawn jmorru permezz, jiġrilha l-istampa. Allura s Kimono pretty intelliġenti. Huwa biss mhux daqshekk b'saħħitha. Hemm xi oħra alternattivi li tista 'tuża. U jien ser nuruk lilhom hawnhekk. Jekk inti huma aktar komdi fl Python minflok Ruby forsi, hemm librerija imsejħa Soppa Beautiful. Tista 'tuża dan. Dan huwa simili ħafna għal Nokogiri. Hija għandha ftit aktar karatteristiċi. Tista 'ssib tag HTML u mbagħad jimxu up jew jiċċaqalqu lejn il-ġenb. Hemm PyQt. Dan jista 'effettivament jinbarax dinamiku siti, għaliex dan huwa tip ta ' huwa WebKit li pretends li jkun a browser mingħajr ma attwalment hemm tkun browser. Għalhekk ikun tistenna għal kulħadd l- JavaScript tagħbija ewwel, u mbagħad jmorru fi u jippruvaw u jinbarax-sit. Jekk inti tixtieq li twaħħal bil Ruby, inti tista 'tmur livell wieħed up minn Nokogiri. Tista 'tuża Capybara ma karta tat-tgeżwir Poltergeist. U dan jista 'attwalment essenzjalment tagħmel l-istess ħaġa kif PyQt, li hija huwa WebKit. Hija tistenna l- JavaScript biex tagħbija ewwel. Jekk inti fiddle madwar miegħu biżżejjed, inti tista 'anki ġġibu ikklikkja fuq affarijiet. Mela jekk hemm rabta li mhix href klassika fejn il-passaġġ huwa faċilment aċċessibbli, u huwa xi ħaġa JavaScript li jiskopri ikklikkja, inti tista 'attwalment tagħmel dan. Il-librerija aktar popolari biex jissimulaw utent huwa JavaScript, li huwa PhantomJS. Dan jista 'ovvjament jinbarax dinamiku siti għaliex dan huwa essenzjalment feint jiġu Chrome mingħajr l-user interface. U allura, ovvjament l-aktar robusta, iżda iżgħar rata għażla, huwa awtomazzjoni Selenju browser. U sfortunatament, int mhux se tkun kapaċi li jagħmlu dan fi żmien IDE CS50 tiegħek. Minħabba essenzjalment dak li ma huwa boots up Chrome tiegħek, Firefox, ikun x'ikun browser li inti tixtieq li tuża, u binarji forsi maws moviment, tkun xi tkun inti tip, u hija biss tip ta ' automates dan il-proċess. Għalhekk ġie żviluppat bħala tip ta ' website għodda għat-testijiet awtomazzjoni. Iżda ħafna nies jużaw Selenju biex jinbarax websajts li huma b'xi mod ieħor ikollu Ħafna diffikultà brix uħud minn dawn l-oħra, għodod aktar mgħaġġel. Allura li kollox stajt ltqajna biex web brix. Ħu gost. UDJENZA: Mistoqsija. ROBERT KRABEK: Iva. UDJENZA: Jeżisti mekkaniżmu biex issir hash il-websajt sabiex inti tista bażikament jgħaddu minnha aktar tard. ROBERT KRABEK: Yeah. Allura aħna tpoġġi l-, fil tagħna eżempju, għal tnejn minnhom, aħna tpoġġi l-websajt sħiħa fis dok. U għalhekk inti tista 'attwalment ħu l- doc varjabbli u jiktbu għall-fajl. Mela jekk jien ridt li, stajt jiktbu out bħala fajl HTML, u mbagħad minflok jużaw OpenURI u talba curl, imbagħad I jistgħu biss jiftħu doc HTML u mbagħad tfittxija għal dan. UDJENZA: Iżda tista jippreservaw t-tip ta 'esperjenza online waqt li inti tagħmel offline. Pereżempju. meta int li jtajru għal bosta sigħat, Irrid li bażikament arkivju l-websajt sħiħa. [Inaudible] ROBERT KRABEK: Yeah, dan huwa exactly-- hekk litteralment dak li dan qed tagħmel huwa Hi tieħu kollox li tkun fl dan il-URL. Allura jekk aħna dam curl, huwa tieħu kollha ta 'dan HTML, u huwa maħżuna ġewwa l-dok varjabbli. Hekk allura inti tista 'tagħmel dak kollu inti tixtieq li tagħmel ma dok. Tista 'output li fajl. UDJENZA: Iżda mhuwiex marbut up. Mhuwiex dinamiku. Mhuwiex rikursivi, id-dritt? You see dak li jfisser I? Jien jippruvaw bażikament tip ta 'hash l-websajt sħiħa fuq hard drive tiegħi I hekk li jista bażikament tagħmel dan għal bosta sigħat mingħajr internet. ROBERT KRABEK: Dritt. Mela jekk jien had-- dan meta s-fajl tiegħi I / O? Allura dan huwa l-fajl I / O. Allura ngħid minflok ta 'dan, I call dan craigslist.html. I d miftuħa li sa. I d tpoġġi dok fih. I qrib il-fajl. U mbagħad biss minħabba l-IDE CS50 huwa fuq il-sħaba, li l-x'ikun. I tista 'tmur hawn. I tista 'tniżżel il-fajl. U allura dan ikun fuq hard drive tiegħi. Allura inti tista 'tagħmel dan il-mod. Jew jekk int fid-dar, ma jużawx l- CS50 IDE, bħal Sublime jew xi ħaġa, dan huwa saħansitra aktar faċli, għaliex din hija kollha disponibbli lokalment, mhux marbut mal-internet. UDJENZA: Nara. Dan huwa għal problema waħda partikolari. Inti tista 'tagħmel dan recursively sabiex inti go diversi saffi tip fond ta 'ħaġa? ROBERT KRABEK: I tista 'tniżżel folders kif ukoll, jekk dan huwa dak li qed titlob. UDJENZA: Yeah. ROBERT KRABEK: Kessaħ.