[เล่นเพลง] โรเบิร์ต KRABEK: สวัสดีครับ ชื่อของฉันคือโรเบิร์ต Krabek และ ฉันจะสอนพวกคุณ วิธีการขูดเว็บด้วย Nokogiri ซึ่งเป็นห้องสมุดทับทิม และชุดกิโมโนซึ่งเป็นส่วนขยายของ Chrome ดังนั้นก่อนมี สิ่งที่สองที่คุณ จะทำอย่างไรหากบางทีคุณอาจจะได้รับ ทำ psets ทั้งหมดเพื่อให้ห่างไกล และพื้นที่ทำงานของคุณคือ ได้รับเพียงเล็กน้อยเต็มรูปแบบ เราจริงก็สามารถไปและ สร้างพื้นที่ทำงานใหม่สำหรับคุณ เพียงแค่ทำโครงการแบรนด์ใหม่ใน ดังนั้นหากคุณต้องการดำเนินการต่อ การทำงานใน CS50 ID แม่แบบ ขณะที่คุณมี รู้สึกฟรีและคุณก็สามารถ ติดตั้ง Nokogiri กับ CFLAGS อัญมณี equals-- ติดตั้ง nokogiri แต่อย่างอื่นฉันจะแสดงให้คุณเห็น วิธีการตั้งค่าใหม่ขึ้น และแล้วนี้เป็นหลัก วางล้อการฝึกอบรมเพิ่มเติม และคุณเข้ารหัสเช่นถ้าคุณเป็น เพียงแค่เขียนโปรแกรมใน Sublime หรือสิ่งที่ ดังนั้นหากเราเปลี่ยนมันมากกว่า ดังนั้นพูดนี้เป็นปัจจุบัน CS 50 ID คุณก็สามารถไป Cloud9 ที่นี่ คุณสามารถไปที่แผงควบคุมของคุณ มันควรจะนำแท็บพื้นที่ทำงาน และจากนั้นคุณก็สามารถคลิก ที่นี่สร้างพื้นที่ทำงานใหม่ ชื่อพื้นที่ทำงานใหม่ของคุณ อาจจะทดสอบหรือขูด และจากนั้นคลิกแท็บนี้เองที่นี่ แทนการ CS50 แท็บแม่แบบ และจากนั้นคุณก็สามารถไป และสร้างพื้นที่ทำงานใหม่ ผมได้สร้างพื้นที่ทำงานที่นี่ ดังนั้นเราจะได้ร่วมงานกับนี้ และถ้าคุณสร้างขึ้นใหม่ พื้นที่ทำงานให้กับแท็บกำหนดเอง คุณก็สามารถพิมพ์อัญมณีติดตั้ง nokogiri ซึ่งไม่ได้ไปที่นี่ ตกลงมันเป็นเรื่องเล็ก ๆ น้อย ๆ แช่แข็ง แต่คุณสามารถพิมพ์อัญมณีติดตั้ง nokogiri และที่ควรจะเป็นสิ่งที่ ที่มีการติดตั้ง ที่ผมกล่าวก่อนถ้าคุณยังคง ทำงานใน ID CS50 แม่แบบของคุณ คุณเพียงแค่ต้องพิมพ์ CFLAGS เท่ากับอัญมณีติดตั้ง nokogiri และฉันได้ติดตั้งไว้แล้ว ที่นี่ดังนั้นฉันจะไม่ทำอย่างนั้น แต่สำหรับผู้ที่ต่อไปนี้ พร้อมความรู้สึกอิสระที่จะทำเช่นนั้น ดังนั้นเมื่อคุณได้มีคุณ Nokogiri ติดตั้งพื้นที่ทำงานหรือห้องสมุด ฉันจะให้คุณนิด ๆ หน่อย ๆ ของหลักสูตรความผิดพลาดในไวยากรณ์ทับทิม เพราะ Nokogiri เป็นห้องสมุดทับทิม ดังนั้นคุณจะต้องรู้พื้นฐานบางอย่าง ไวยากรณ์ทับทิมสำหรับการทำงานกับ Nokogiri ดังนั้นความแตกต่างขั้นพื้นฐาน จากสิ่งที่คุณกำลังใช้ บางทีถ้าคุณได้รับการทำงาน เพื่อให้ห่างไกลในเวลาเพียงซีและ PHP, คุณประกาศตัวแปรชนิดที่ไม่มี คุณไม่ได้ใช้อัฒภาค ซึ่งเป็นชนิดของความโล่งอก มีวงเล็บไม่มีตอนนี้รอบ หรือในขณะที่ลูปเช่น คุณเพียงแค่ต้องบล็อกของรหัสและ แล้วคุณจะหมดสิ้นในตอนท้ายของว่า มีไม่บวกบวก หรือลบลบดังนั้นเพียงแค่ รู้ว่าเมื่อ คุณกำลังทำสำหรับลูป เพียงเท่ากับบวกและลบเท่ากับ และแทนที่จะกัญชารวมถึง คุณจะต้องใช้แล้ว ห้องสมุดสิ่งที่พยายาม โหลดลงในโปรแกรมของคุณ ทับทิมไม่ได้เป็นภาษาที่รวบรวม เพื่อให้เป็นความโล่งใจอีก มันมากขึ้นคล้ายกับ PHP ที่ มันเป็นภาษาตีความ คุณสามารถเรียกใช้สคริปต์ใด ๆ ที่ทับทิม คุณเขียนด้วยทับทิมตาม โดยใช้ชื่อของสคริปต์หรือโปรแกรมของคุณ ที่มีความหมายว่ามันเป็นโปรแกรมที่ทับทิม คุณเพียงแค่จบด้วย .rb แทน .c และมีตัวแปร อาร์เรย์กลางในทับทิม ซึ่งมีความสะดวกสุดเมื่อคุณอยู่ ขูดและบางทีอาจจะต้องการที่จะผนวก ข้อมูลที่คุณได้คัดลอกมาเป็นอาร์เรย์ คุณจะได้ไม่ต้อง malloc อาร์เรย์ใหม่และ คัดลอกอาร์เรย์เก่าเข้าไปในแถวใหม่ คุณก็สามารถผนวกกับ ทั้งสองสัญญาณลูกศร และมีตัวอักษรไม่มี เพียงสตริงตัวอักษรเดียว ดังนั้นที่ควรจะง่ายขึ้นเล็กน้อย ดังนั้นเราก็จะให้คุณบาง ตัวอย่างบางส่วนของไวยากรณ์ทับทิมพื้นฐาน ดังนั้นที่นี่คุณสามารถเห็นได้ว่าแทน เฉือนเฉือนที่จะแสดงความคิดเห็นในทับทิม คุณเพียงแค่ใช้เครื่องหมายปอนด์ และการประกาศตัวแปรคุณ เพียงแค่พิมพ์เท่ากับตัวแปร สิ่งที่คุณต้องการตัวแปรที่จะ พวกเขาสามารถเป็นสตริง คุณสามารถมีอาร์เรย์ที่ คุณเติมที่มีค่า ทำให้และภาพพิมพ์ที่มีความคล้ายคลึง สำหรับวัตถุประสงค์ของเราที่ ความแตกต่างเพียงอย่างเดียวคือจริงๆ ที่ทำให้ซึ่งย่อมาจาก ทำให้เพียงแค่ทำให้บรรทัดใหม่ ตัวอักษรในสิ่งที่คุณกำลังพิมพ์ ดังนั้นถ้าเราให้มีขนาดเล็ก การสาธิตที่นี่ เราสามารถทำงานนี้ with-- เปิดอาคารผู้โดยสารแห่งใหม่ คุณสามารถมองเห็นสิ่งเหล่านี้ ไฟล์ที่อยู่ในขั้วของฉัน และถ้าฉันเพียงแค่เรียกใช้ ทับทิมทับทิม intro.rb มัน ทำให้ออกห้าสวัสดี ท้องควินซีและตัวแทนจำหน่าย อดัมส์ นั่นคือทั้งหมดที่มี เพื่อประกาศอาร์เรย์ ผู้ชม: โรเบิร์ตที่คุณสามารถทำ ตัวอักษรเล็ก ๆ น้อย ๆ ของคุณใหญ่? โรเบิร์ต KRABEK: ใช่ และฉันสามารถซูมเข้าเพราะคุณไม่สามารถ ซูมเข้าขั้วแบบอักษรที่เห็นได้ชัด เพื่อให้เป็นวิธีที่คุณพิมพ์ ตัวแปรไปยังสถานีของคุณ นอกจากนี้คุณยังสามารถใช้ ตัวแปรภายในสตริง ดังนั้นเมื่อเร็ว ๆ นี้ใน PHP คุณอาจได้เรียนรู้ ว่ามีการแก้ไขสตริง ดังนั้นถ้าคุณใช้เวลาดูที่นี่ถ้าฉัน ประกาศสามตัวแปรชื่อห้องสมุด และภาษาและฉันทำให้ฉัน เขียนสตริงสวัสดีชื่อของฉันคือ และจากนั้นแทนของ PHP รุ่นของการแก้ไขสตริง ซึ่งมีลักษณะเล็ก ๆ น้อย ๆ เช่นนี้ คุณมีเครื่องหมายปอนด์แล้ว รั้งหยิกแล้ว ชื่อของตัวแปร และนั่นคือวิธีที่คุณต้องการพิมพ์พูดว่า สิ่งที่ชื่อตัวแปร และจากนั้นคุณยังสามารถ concatenate สตริง ทับทิมทำให้มันสุด ง่ายด้วยเครื่องหมายบวก คุณเพียงแค่หนึ่งสาย ด้านซ้ายบวกตัวแปร หรือสตริงอื่นบวกสตริง ดังนั้นถ้าผมพิมพ์นี้ออกที่ควร เพียงแค่พูดว่าสวัสดีชื่อของฉันคือโรเบิร์ต ฉันจะสามารถสอนคุณ nokogiri ในทับทิม และขอยืนยันว่าเพียงแค่ว่า แน่นอนเป็น case-- บทนำทับทิม สวัสดีชื่อของฉันคือโรเบิร์ต ฉันจะสามารถสอนคุณ nokogiri ในทับทิม ย้ายถ้างบอื่น มันแตกต่างกันเล็กน้อย จากสิ่งที่คุณอาจจะใช้ในการ ถ้าคุณได้รับการทำงานใน C. คุณไม่จำเป็นต้องวงเล็บ คุณไม่จำเป็นต้องวงเล็บปีกกา และแทนที่จะอื่นถ้า, มันเป็น elsif ตัดแบ่ง ดังนั้นในที่นี่ถ้าฉันได้ประกาศ x ขึ้น ที่นี่เป็นเราสามารถมองเห็นยังคง x 5 ดังนั้นถ้า x น้อยกว่า 3 ก็จะใส่ขนาดเล็ก ถ้ามันน้อยกว่า 7, กลาง, ขนาดใหญ่อื่น ๆ ดังนั้น 5 เป็นจำนวนกลาง และผมจบบล็อกของรหัสด้วยเหตุนี้ นี่ฉันเป็นห่วง และรูปแบบนี้ยังเป็น แตกต่างกันเล็กน้อย 0 ถึงห้าเพียงเป็นหลัก มีการประกาศอาร์เรย์ 0 ถึง 5 ดังนั้นจึงมีห้าช่องในอาร์เรย์ และแล้วสำหรับช่องในการที่แต่ละ อาร์เรย์ผมจะ incrementing ฉัน ดังนั้นควรพิมพ์ 0-5 หรือ 0-4 และนี่ควรพิมพ์กลาง และฉันก็จะลุกโชนผ่าน พวกคุณจะมีการเข้าถึง รหัสนี้ในภายหลัง ดังนั้นพวกคุณสามารถทำงานได้ด้วยตัวเองนี้ ดังนั้นนี้เป็นห่วงในขณะที่พื้นฐานของคุณ เพียงแค่นี้ก็จะได้รับการพิมพ์เจ การเพิ่มขึ้น 1 จนกว่าเราจะตี 5 ซูเปอร์หลักสูตรความผิดพลาดทับทิมอย่างรวดเร็ว เกี่ยวกับวิธีการเขียนฟังก์ชั่น แทนการพูด, int ปัจจัย จำนวนเราก็มีความละเอียด และเป็นหลักคุณ กำหนดฟังก์ชั่นที่นี่ นี้จะเป็น ชื่อของฟังก์ชั่น และนี่คือตัวแปรใด ๆ ที่คุณ ต้องการที่จะผ่านเข้าสู่ฟังก์ชั่น คุณสามารถมีถ้างบภายใน คุณสามารถกลับ ในกรณีนี้เรา กำหนดซ้ำ ฟังก์ชั่นการใช้งานปัจจัย ดังนั้นเราก็เรียกฟังก์ชั่น ในทับทิมเช่นนี้ ดังนั้นถ้าผมได้กำหนดไว้นี้ผม สามารถโทรปัจจัยผ่านใน 3, และจากนั้นจะมี 3 ตัวแปรจำนวน ที่ฉันสามารถใช้ฟังก์ชั่นภายใน และ to_s นี้เป็นเพียงการเปลี่ยน กลับค่าของปัจจัยเป็นสตริง มิฉะนั้นนี้จะโยน ข้อผิดพลาดว่าโอ้ฉัน ไม่สามารถพิมพ์ string-- เพราะในขณะที่คุณจำได้ ทำให้ใส่ string-- เพราะ ปัจจัยได้กลับมาเป็นจำนวนมาก ดังนั้นเราจึงสามารถแปลงที่ สตริงเหมือนเช่น และตรงกันข้ามคุณยังสามารถแปลง สตริงเป็นจำนวนเต็มกับ to_i ดังนั้นทำให้ทุกอย่างง่ายสุด ถ้าฉันเพียงแค่แสดงความคิดเห็นออกมาบันทึก และเรียกใช้ฟังก์ชันปัจจัย เราควรจะสามารถมองเห็น ปัจจัยที่ 3 คือ 6 และนั่นเป็นความจริง เพื่อให้เป็นหลักสูตรความผิดพลาดของคุณในทับทิม และตอนนี้ที่คุณรู้ว่าทับทิมที่เราสามารถไปที่ ไปขูด Nokogiri พื้นฐานการตั้งค่า โดยเฉพาะอย่างยิ่งสิ่งที่คุณต้องทำคือ ในทับทิมต้องใช้ห้องสมุด และเพื่อวัตถุประสงค์ของเราที่เราจะใช้ ห้องสมุด OpenURI เช่นเดียวกับ Nokogiri และแล้วสิ่งที่คุณ do-- และมันจะ ให้คุณไวยากรณ์สำหรับ this-- คุณเปิด URL มากที่สุดเท่าที่คุณจะอยู่ใน คำขอม้วนซึ่งย่อมาจาก URL C ดังนั้นคุณจะใช้ URL ของ เว็บไซต์ในคำถาม คุณเก็บไว้ในตัวแปร และจากนั้นคุณสามารถค้นหาผ่านว่า ตัวแปรสำหรับแท็กที่ไม่ซ้ำกันโดยใช้ คำสั่ง .css และจากนั้นคุณสามารถส่งออก เนื้อหาทุกที่ที่คุณต้องการ คุณสามารถเริ่มต้นในฐานข้อมูล คุณสามารถส่งออกในแฟ้มหรือ แม้เพียงแค่พิมพ์ไปที่หน้าจอ ดังนั้นเราจะแสดงให้คุณมีดโกนพื้นฐาน ดังนั้นที่นี่คุณสามารถเห็นเรามี ต้อง nokogiri ต้องเปิด URI ชุดพื้นฐานของคุณขอ เรียกว่าเอกสารหรือ doc, เท่ากับ Nokogiri :: เปิด HTML ซึ่งเป็น คำสั่งแจ้งกับเราไว้ OpenURI ห้องสมุด. และเราจะได้รับการค้นหาสำหรับบรรดาของ ท่านที่อาจจะอาศัยอยู่ในรูปสี่เหลี่ยม, สำหรับจักรยานที่มีการระบุไว้ในบอสตัน ในบอสตันส่วน Craigslist จักรยาน เว็บไซต์ ดังนั้นถ้าคุณไม่คุ้นเคย ม้วนกับฉันจะเป็นเพียง แสดงจริงอย่างรวดเร็วสิ่งที่ม้วนจะทำ ถ้าผมต้องการที่จะได้รับทั้งหมดของ URL จาก เว็บไซต์ Craigslist ถ้าผมพิมพ์ขด มันก็ทิ้งทั้งหมดของ URL จากเว็บไซต์ Craigslist จักรยาน บนขั้วของฉัน ที่ไม่ได้โดยเฉพาะอย่างยิ่ง ประโยชน์เพราะฉันทำไม่ได้ ตนเองต้องการที่จะผ่านไปและ พบสิ่งที่ผมกำลังมองหา แต่เพียงเพื่อให้คุณสามารถ เห็นว่าฉันจริง ใช้รหัสที่ถูกต้องถ้าคุณดู ที่ URL สำหรับ Craigslist ใน bikes-- ด้วยเหตุผลบางอย่างก็ไม่ได้พบ ถ้าคุณดูที่หน้านี้ และคุณมองไปที่ URL ที่ นี้ควรจะเป็นเหมือน คำขอม้วนท​​ี่ฉันเพียงแค่ส่ง และแน่นอนว่าเป็นสิ่งที่ถูก เก็บไว้ในตัวแปรหมอ ดังนั้นเมื่อคุณกลับไปที่รหัสของเราเรา จากนั้นสามารถทำงานบนตัวแปร doc นี้ โดยใช้ .css เพื่อบอกว่าฉันต้องการที่จะได้รับทั้งหมดของ แท็กที่มี span.txt, และแท็กภายในแท็กนั้น และเหตุผลที่เราอาจต้องการที่จะ ทำเช่นนี้ผมได้ยินคุณร้องไห้? ถ้าเราตรวจสอบองค์ประกอบของมันจะช่วยให้คุณ รายละเอียดของวิธีการ URL ที่มีโครงสร้าง ถ้าผมเลื่อนลงมาผ่าน ที่นี่คุณจะเห็น สิ่งที่แต่ละคนที่แตกต่างกันเหล่านี้ แสดงให้เห็นถึงองค์ประกอบ ดังนั้นบางทีผมต้องการที่จะเข้าถึง องค์ประกอบนี้โดยเฉพาะอย่างยิ่ง ดังนั้นฉันใช้พัฒนาโครเมี่ยม เครื่องมือในการตรวจสอบธาตุ ฉันสามารถดูลงที่นี่ว่านี้ เป็นแท็กในช่วงที่ แท็กที่มีระดับของ TXT ดังนั้นนี้ได้รับของเรา ดำเนินการครั้งแรกที่ เป็นช่วง doc.css ซึ่งเป็นแท็กที่ ฉันกำลังมองหาทั้งหมดภายใน URL นี้ และแล้ว .txt ดำเนินมากเช่น CSS ไม่เมื่อคุณเพียงแค่เขียน CSS ในไฟล์ HTML ของคุณโดย ระบุชั้นเรียน ดังนั้นผู้ประกอบการโดยเฉพาะอย่างยิ่งจะ แท็กระบุช่วงที่มีระดับของ TXT และแล้วถ้าฉันออกจากพื้นที่ นี้จากนั้นจะไปที่อยู่ในแท็กนั้น แล้วพบป้ายภายในว่า ดังนั้นถ้าฉันเพียงแค่ใส่นี้ ขั้วที่ฉันควร จะสามารถเห็นทุกอย่างเป็นหลัก ที่อยู่ในช่วงของการเรียน TXT นี้ ดังนั้นเราจะให้ไปที่ ทับทิม Craigslist มีดโกน และแน่นอนที่ทำให้เราสิ่งเหล่านี้ แท็กของรายการต่างๆที่ ที่อยู่บนหน้าเว็บ Craigslist ดังนั้นหากเรากลับไปเราสามารถเปิดการทำงานนี้ เป็นสิ่งเล็ก ๆ น้อย ๆ ที่มีประโยชน์มากขึ้น บางทีเราต้องการเพียงแค่การเชื่อมโยง เพราะภายในแท็กนี้ฉันจะยัง มีการเชื่อมโยงของเส้นทาง ที่หน้านี้ไป ดังนั้นถ้าคุณมองไปที่รหัสนี้ที่นี่ สิ่งที่ผมจะทำคือแทนที่จะ .css, ฉันสามารถไป at_css และนี้ก็จะได้รับครั้งแรก องค์ประกอบทั้งหมดของสิ่งเหล่านั้น ดังนั้นถ้าผมจะทำอย่างนั้นขึ้นมาใน รหัสฉันเพียงแค่แสดงให้เห็นก่อนหน้านี้ แทนที่จะกลับทั้งหมด นี้มันจะเป็นเพียง กลับมาครั้งแรกหนึ่งในบรรดา เพื่อให้เป็นวิธีการทำงานของผู้ประกอบการ at_css ดังนั้นเราจึงต้องการที่จะเก็บ ทุกเส้นทางแรกแท็ก และเพราะจะทำให้เรา a-- ดังนั้นเรายังคงไปใช้ .css แต่เพราะเป็นไปเพื่อให้ เรากลับอาร์เรย์ทั้งหมดของแท็ก เราจะเข้าถึง องค์ประกอบแรก ดังนั้นนี้เป็นอีกวิธีหนึ่งที่คุณสามารถ เข้าถึงองค์ประกอบใด ๆ โดยเฉพาะอย่างยิ่งถ้าคุณ มีอาร์เรย์ขององค์ประกอบ ที่จะถูกส่งกลับ เพราะคุณสามารถรักษาสิ่งที่ ผลตอบแทน .css เป็นอาร์เรย์เป็นหลัก และจากนั้นเรากำลังจะเข้าสู่ แอตทริบิวต์การอ้างอิงมิตินี้ ดังนั้นถ้าคุณลองดูถ้า คุณมองอย่างใกล้ชิดจริงๆที่นี่ ถ้าคุณเพียงแค่หลัก มองไปที่แถบ URL, นี้เป็นเส้นทางที่ คุณกำลังจะได้รับการขูด ดังนั้นถ้าเราเพียงแค่ทำงานนี้อีกครั้ง และให้แน่ใจว่าเราได้บันทึกไว้ คุณสามารถตรวจสอบที่บ้าน นี้ที่จริงตรงกับที่ลิงค์นี้ ดังนั้นทำไมเราอาจต้องการใช้นี้หรือไม่? หากคุณต้องการที่จะขูด หน้าและมี หน้าของการเชื่อมโยงเช่น Craigslist ไม่คุณ อาจต้องการไปแล้ว ในแต่ละเชื่อมโยงเหล่านั้น แล้วขูด เนื้อหาที่ซึ่ง เป็นสิ่งที่เรากำลังจะทำ ดังนั้นเมื่อคุณมีเส้นทางเป็น ตัวแปรฉันไม่ได้จริงๆ ดูแลเกี่ยวกับการพิมพ์มันออกมา ฉันต้องเก็บไว้เป็นตัวแปร แล้วฉันสามารถเข้าถึงอื่น หน้าแบบเดียวกับที่ฉันจะเข้าถึง เอกสารในสถานที่แรก ยกเว้นที่มี URL ที่เรากำลังจะไป ที่จะใช้การแก้ไขสตริง เหมือนที่ผมได้รับการอธิบายใน ทับทิมก่อนหน้านี้เมื่อผนวก เส้นทางไปยังจุดสิ้นสุดของราก ดังนั้นสิ่งนี้เป็นไปที่จะทำคือ นี้จะวางอยู่บนเส้นทาง ที่ผมคัดลอกมาก่อนหน้านี้ แล้วเปิดที่ เป็นรายการใหม่, สิ่งที่คุณต้องการ เรียก first_listing it-- ยกตัวอย่างเช่น แต่ฉันจะออกจาก ได้ในรายการตอนนี้ เพราะนั่นคือสิ่งที่ฉันใช้ที่นี่ เพื่อบอกว่าฉันต้องการที่จะได้รับรายละเอียด ของการโพสต์ครั้งแรกใน Craigslist ดังนั้นผมจะไปลงที่นี่ ฉันจะคลิกที่ตรวจสอบธาตุ อีกครั้งเพราะนี่คือคำอธิบาย ฉันต้องการไปลงที่นี่และดู ถ้าฉันสามารถหาวิธีการที่ฉันอาจ สามารถที่จะค้นหาแท็กไม่ซ้ำกันนี้ และในกรณีนี้ก็มี รหัสซึ่งนำไปสู่​​เรา วิธีการของเราต่อไปของการค้นหา แท็กซึ่งเป็นที่มี hashtag ดังนั้นสำหรับการเรียนที่คุณสามารถ ใช้ตัวดำเนินการจุด ดังนั้น .txt มีการระบุระดับของ TXT ที่ ในขณะที่แฮระบุประชาชน ดังนั้นในกรณีนี้แท็กคือ ส่วนและประชาชนเป็น postingbody ดังนั้นนี้ไปและพบว่า first-- เพราะเรา ใช้ at_css-- นี้ไปและ พบว่าองค์ประกอบแรกที่ มากับแท็กของส่วน และประชาชนของ postingbody และจากนั้นคุณสามารถเข้าถึงองค์ประกอบข้อความ ของรายการที่กลับมาพร้อมกับ .Text และจากนั้นเราสามารถจัดเก็บ ว่าในรายละเอียด ดังนั้นขณะนี้ที่เรามี คำอธิบายตัวแปร เราอาจจะสามารถที่จะทำพูด ยื่น I / O ดังนั้นยื่น I / O ในทับทิม คล้ายกันมากที่จะยื่น I / O ใน C ที่เราเปิดแฟ้ม เราอาจจะเขียนไป และจากนั้นเราจะปิดแฟ้มที่ ดังนั้นที่นี่เราเพียงแค่การตั้งชื่อ ไฟล์บางตัวแปรโดยพลการ นอกจากนี้เรายังจะได้เพียงแค่ใส่ที่นี่ เรามีตัวแปรที่เรากำลังจัดเก็บ ไฟล์ที่เปิดเช่นเดียวกับ File.open และเรากำลังเขียนไปยังแฟ้มนี้ ดังนั้นเราจึงเปิดกับผู้ประกอบการเ และแล้วเราใส่เข้าไปในสตริง ยื่นกับผู้ประกอบการ .puts และแล้วเราใส่ตัวแปรที่เรา ต้องการที่จะเขียนไปยังแฟ้มภายในว่า และแล้วเราก็ปิดแฟ้ม ดังนั้นหากเราไปข้างหน้าและทำงานนี้ นี้ควรผลิตเอกสาร กับ description.txt ซึ่งจะ มีคำอธิบายนี้อยู่ภายใน ดังนั้นถ้าผมทำงาน it-- ไม่มี มันผลิตแฟ้มข้อความด้วย หวังว่าสิ่งเดียวกัน ดังนั้นอาจจะมีการโพสต์ใหม่ ที่เกิดขึ้นในขณะที่ฉันได้รับการพูด และแน่นอนมันดูเหมือนว่ามีการ ดังนั้นหากเราไปที่จักรยานคลาสสิกนี้ 1962-1966 ที่ดูเหมือนว่าเพื่อให้ตรงกับ และมีคุณไป เพื่อให้เป็นพื้นฐานที่สุด การทำงานของการขูด เราจะได้มีแทน เพียงแค่เขียนไปยังแฟ้มนี้ เราสามารถเพิ่มสิ่งที่อาร์เรย์ ดังนั้นถ้าผมประกาศสามอาร์เรย์ ชื่อเรื่องราคาและรายละเอียด และเรากำลังปฏิบัติการในรายการ doc ในขณะนี้ เราสามารถผ่านไปและ ค้นหาทั้งหมดของ span.txt และจำไว้ว่านี้ส่งกลับอาร์เรย์ ของรายการทั้งหมดที่พบ และจากนั้นในทับทิมคุณก็สามารถใช้ ห้องพักทุกห้องจะย้ำผ่านทุกรายการ ของอาร์เรย์ และแล้วสำหรับแต่ละรายการ ฉันแค่ไปที่จะเรียกว่า การเชื่อมโยงเพราะนั่นคือ เป็นหลักว่ามันคืออะไร ดังนั้นถ้าฉันใส่แต่ละ link.css จุด a.hdrlnk, นี้เป็นจริงจะเชื่อมโยง และการค้นหาในการเชื่อมโยงอื่นที่ องค์ประกอบ HTML และชั้นที่สอดคล้องกัน ดังนั้นหากเราจำสิ่งที่ นี้เป็น span.txt ที่ คุณสามารถ see- ให้ฉันเพียงแค่กลับไป quick-- จริงภายใน span.txt เรามีจำนวนมากของการเรียนอื่น ๆ ดังนั้นภายใน span.txt เรากำลังมองหา สำหรับแท็กกับ hdrlnk ชั้นเรียน เพื่อให้ฉันเพียงพบว่า สำหรับพวกคุณจริงอย่างรวดเร็ว ดังนั้นคุณสามารถดูที่นี่นี้เป็นแท็ก ที่ในช่วงของการเรียน TXT ที่มี hdrlnk ชั้นเรียน และนั่นคือสิ่งที่แน่นอน เรากำลังพยายามที่จะได้รับ ดังนั้นตอนนี้เรากำลังพยายามที่จะเก็บทุก ของการเชื่อมโยงผู้ที่อยู่ภายในชื่อ และจากนั้นเรากำลังจะพิมพ์ ออกในแต่ละของการเชื่อมโยงเหล่านั้น ไม่ล่ะขอบคุณ. เรากำลังจะพิมพ์ออกมา ราคาของแต่ละคน ดังนั้นเรามาทำงานนี้จริงๆ อย่างรวดเร็วและดูสิ่งที่มันไม่ ดังนั้นเพียงแค่นี้โดยทั่วไปไป ผ่านแต่ละของการเชื่อมโยง ในทางกลับกัน, เข้าถึงแท็กในคำถาม แล้วดึงออกมาจากราคา และมันก็ไม่ว่าเพราะหลังจากที่ คุณมีทุกอย่างในชื่อ เราได้เก็บไว้เพียงชื่อมี เราได้เก็บไว้เพียงแค่การเชื่อมโยง ภายในชื่ออาร์เรย์ และในการนี​​้สำหรับการดำเนินงานห่วง ที่แทนที่จะไป a.hdrlnk, เรากำลังมองหา span.price ดังนั้นถ้าฉันสามารถเพียงจริงๆอย่างรวดเร็วพบ ราคาถ้าคุณตรวจสอบองค์ประกอบ คุณจะเห็นว่ามันเป็นคืบ กับระดับของราคา และนั่นคือวิธีการที่เป็นหลัก เราจะได้รับราคาที่มี เพื่อให้เป็นจริง กรณีพื้นฐานของการขูด นั่นเป็นวิธีที่คุณได้รับทั้งหมด องค์ประกอบบนหน้าเว็บ ที่พูดคุณรู้อยู่แล้วว่า URL ของ ดังนั้นถ้าเราต้องการที่จะได้รับ เล็ก ๆ น้อย ๆ ในเชิงลึก เราสามารถขูดหน้าภายในหน้า และสำหรับตัวอย่างนี้ผมจะ จะแสดงผลไปยังไฟล์ CSV ดังนั้นฉันต้อง CSV ที่นี่ เพราะทับทิมไม่ได้ภายในตัวเอง มีฟังก์ชันการทำงาน เพียงแค่การส่งออกไฟล์ CSV เพื่อให้ง่ายสุด ผมขอเพียงแค่ไปที่ต่อไป เราครอบคลุมไฟล์ I / O ดังนั้นนี่ จะคล้ายกับวิธีการที่จะอยู่ในซี และก่อนที่เราจะย้ายไปยังชุดกิโมโน, ฉันจะแสดงให้คุณเห็นวิธีการที่รวดเร็วจริงๆ ขูดเว็บไซต์ที่อยู่ในสถานที่ท่องเที่ยว ดังนั้นเราจึงได้เรียนรู้วิธีแล้ว ที่จะประกาศในอาร์เรย์ทับทิม ดังนั้นฉันแค่ประกาศ พวงของอาร์เรย์โดยพลการ ที่ฉันจะได้รับการจัดเก็บข้อมูลภายใน doc มีการดำเนินงานในลักษณะเดียวกัน เท่าที่จะทำได้ในแฟ้มก่อนหน้านี้ เรากำลังจะไปในการหา แต่ละของ span.txt เรารู้อยู่แล้วว่า นั่นคือภาชนะภายในที่แต่ละ การเชื่อมโยงมีข้อมูลทั้งหมดที่เราต้องการ ดังนั้นนี่คือสิ่งที่เรากำลังทำอยู่ในแต่ละ การเชื่อมโยงของการเรียนช่วง TXT, เรากำลังไปใน และเรากำลังหาแท็ก การหาองค์ประกอบแรกของที่ โปรดจำไว้ว่าผลตอบแทนที่ได้ .css อาร์เรย์ ดังนั้นคุณจึงไม่สามารถเข้าถึงเพียงแค่ว่ามันเป็นคือ เรากำลังจะไปหาองค์ประกอบแรก แม้ว่าจะเป็นอาร์เรย์ของหนึ่ง รายการที่คุณจะต้องใช้รูปแบบนี้ แล้วดึงออกแอตทริบิวต์ href ดังนั้นเราจึงได้ก่อนหน้านี้ ดังนั้นควรมีลักษณะที่คุ้นเคย ดังนั้นตอนนี้เรามีอาร์เรย์ เรียกว่าเส้นทางของการเชื่อมโยงของเรา ที่เรากำลังจะต้องการใช้ ดังนั้นถ้าเรามีอาร์เรย์ของทั้งหมดนี้ เส้นทางที่เราต้องการใช้ เราก็สามารถสร้างรายการสำหรับแต่ละ ของหน้าเว็บเหล่านั้นเมื่อเราเปิดหน้าเว็บที่ ดังนั้นในขณะที่เรายังเห็นใน ไวยากรณ์ก่อนที่ ทำแก้ไขสตริงกับเส้นทาง ที่นี่จึงไวยากรณ์เป็นเพียงสำหรับเส้นทาง และผมก็สามารถตั้งชื่อนี้ ตัวแปรชื่อโดยพลการใด ๆ นี้เป็นสิ่งสำคัญอย่างหนึ่ง นี่คืออาร์เรย์ที่คุณจะ จะเข้าถึงแต่ละองค์ประกอบ แต่เมื่อคุณกล่าวว่าสำหรับเส้นทางที่อยู่ในเส้นทาง นี้หมายความว่าสำหรับองค์ประกอบในเส้นทางแต่ละ เรียกว่าเส้นทางและการใช้งานที่ นี้เป็นหลักเช่นเมื่อคุณ ทำสำหรับวงและคุณใช้ฉัน int ดังนั้นคุณจึงสามารถรักษาเป็นเส้นทางที่ ตัวแปรที่การเพิ่ม และแล้วสำหรับแต่ละเหล่านั้น ไปลงในแต่ละเชื่อมโยงเหล่านั้น เพราะเราเก็บไว้ในหน้ารายการ ดังนั้นเราสร้างหน้าใหม่ทุกครั้ง เราเข้าถึงได้ และจากนั้นภายในหน้าใหม่ที่พบ span.postingtitletext, span.price, แล้วส่วน # postingbody เราครอบคลุมอยู่แล้วส่วน # postingbody เมื่อเรามองไปที่รายละเอียด เพื่อให้เราสามารถไปดูในโพสต์ Craigslist, ถ้าคุณกำลังมองหาที่เพียงแค่ชื่อ คุณสามารถเห็นมันขึ้นที่นี่ ช่วง postingtitletext และที่ว่าทำไมมันมี และจากนั้นในราคาที่คุณสามารถ เข้าถึงได้กับระดับช่วงราคา ดังนั้นเรายังอาจจะอาจจะ ต้องการเก็บ URL ของ ดังนั้นเราก็จะทำงานนี้ อีกครั้งเก็บไว้ในอาร์เรย์ เพราะถ้าคุณกำลังมองหา ใน Craigslist คุณ อาจจะต้องการวิธีการถ้า คุณเห็นบางสิ่งบางอย่างที่คุณสนใจ กลับไปยังเว็บไซต์ที่ ดังนั้นคุณเพียงต้องการที่จะจัดเก็บ URL สำหรับการอ้างอิงประโยชน์ นี่เป็นเพียงเป็นหลัก ไวยากรณ์สำหรับการห่วง ฉันจะไม่ paths.each แทน ของเส้นทางในเส้นทางที่มีค่าดัชนี และรูปแบบนี้คือทับทิม for-- เส้นทางคือสิ่งที่เราทำขึ้นที่นี่ ประกาศตัวแปรสำหรับแต่ละรายการ และดัชนีพฤติกรรมเช่น ฉันใน C สำหรับลูป ดังนั้นคุณสามารถติดตาม ของสิ่งที่ดัชนี ดังนั้นนี่เป็นเพียง สิ่งอำนวยความสะดวกเล็ก ๆ น้อย ๆ เมื่อคุณใช้มีดโกน หากคุณกำลังขูดหลายร้อยหน้า เพื่อให้แน่ใจว่ามันไม่ได้แขวน มันจะเป็นเพียงแค่การส่งออก ฉันเข้าถึงหน้านี้ และให้แน่ใจว่า ก็ยังคงดำเนินการต่อไป แต่สำหรับวัตถุประสงค์ของเราเพราะ มีร้อยรายการ ฉันจะเข้าถึงเพียงสามของพวกเขา เพื่อที่เราจะไม่ได้หมดเวลาที่นี่ แต่ก่อนที่เราจะไปว่าฉันแค่ จะแสดงให้คุณได้อย่างรวดเร็ว ผมจะแสดงผลชื่อ ราคา, รายละเอียดและ URL ของแต่ละการเชื่อมโยงที่ผมได้คัดลอกมา และแล้วนี้เป็นเพียง ไวยากรณ์สำหรับห้องสมุด CSV คุณสามารถเปิดไฟล์ CSV นี่คือสิ่งที่ผมจะเรียกมันว่า เปิดด้วยการเขียนสิ่งที่ต้องทำ และแล้ว CSV จะเป็นแฟ้มที่ คุณป้อนทุกอย่างลง นี่เป็นเพียงการตรวจสอบสุขภาพจิตดีสำหรับ ฉันรู้ว่ามันทำงาน และนี่คือการตรวจสอบสุขภาพจิตของฉัน ที่จะรู้ว่ามันเสร็จสมบูรณ์ ดังนั้นฉันใส่ชื่อเข้าไปในแถวใน CSV ราคาสมาชิก, คำอธิบาย, ทั้งหมดลงในแถวในรูปแบบ CSV ดังนั้นถ้าเราไปและเรียกใช้ now-- นี้และฉันเพียงแค่ ตรวจสอบให้แน่ใจว่าผมได้บันทึกไว้ it-- แทน เพียงแสดงผลไปยังขั้ว เราควรจะมีไฟล์ CSV ยื่นที่ผลิต ดังนั้นที่นี่เราสามารถมองเห็นรูปแบบ CSV ไฟล์ที่ได้รับการผลิต นี่คือผลลัพธ์ของ scape ที่ฉันเพียงแค่ขับรถ ในขณะที่คุณสามารถดูที่นี่ การเข้าถึงหน้า 0, 1, 2, 3 เหล่านี้เป็นชื่อที่ ราคา, คำอธิบาย และถ้าเรามองไปที่ CSV นี้ ไฟล์ที่เราได้สร้างขึ้น คุณสามารถเห็นออกมาที่นี่ นี้ไม่ได้เป็น Excel เพื่อให้มันไม่ได้ จัดรูปแบบในแถวและคอลัมน์ แต่คุณสามารถจินตนาการว่า มันอาจจะมีการจัดรูปแบบ CSV ย่อมาคั่นด้วยเครื่องหมายจุลภาค ดังนั้นคุณสามารถจินตนาการนี​​้อาจจะมีแถว และจุลภาคแต่ละจะ บ่งบอกถึงคอลัมน์ที่แยกต่างหาก เพียงแค่คำพูดของ caution-- บางครั้งคุณ ขูดสิ่งที่มีจำนวนมากของเครื่องหมายจุลภาค ดังนั้นหากคุณกำลังแสดงผล ไปยังไฟล์ CSV ที่ มันอาจจะไม่ส่งออก วิธีที่คุณอาจคิดว่า เพื่อให้เป็นหลักทั้งหมด มีการขูด HTML พื้นฐาน หน้าเว็บที่มี Nokogiri ดังนั้นเป็นอินเทอร์เน็ต เป็นนวัตกรรมใหม่ที่มันได้เกิดขึ้น กับอัตโนมัติมากขึ้นและ GUI รุ่นแม้จะมีประสิทธิภาพน้อย รุ่นขูดเว็บไซต์ต่างๆ และสำหรับวัตถุประสงค์ของเรา ฉันจะแสดงให้เห็นถึง ส่วนขยายของ Chrome ที่เรียกว่าชุดกิโมโน และสิ่งที่คุณต้องทำคือคุณนำทาง ไปยังหน้าเว็บที่คุณต้องการที่จะขูด คุณคลิกบนสนามที่น่าสนใจ คุณปรับทุ่งนา เพราะมันจะโดยอัตโนมัติ ตรวจสอบสิ่งที่มันคิดว่า คุณต้องการที่จะขูด และแล้วคุณก็สร้าง API ดังนั้นถ้าเราจะแสดงให้เห็นถึงมันใน Craigslist ก็จริงจะไม่ทำงาน และนี่คือสิ่งที่ผมจะกลับไปที่ พูดเกี่ยวกับมันไม่ได้เป็นที่แข็งแกร่ง แต่ก็มีปัญหาในการสร้างเอพีไอ แต่ในขณะที่การสาธิต ของสิ่งที่จะทำ ถ้าคุณติดตั้งส่วนขยายของ Chrome, สิ่งที่คุณทำคือคุณคลิกที่มัน มัน Kimonofies หน้าและจากนั้นคุณ คลิกที่สิ่งที่คุณต้องการสคริปต์ ดังนั้นถ้าผมคลิกไปที่ ว่ามันจะเน้น สิ่งที่มันคิดว่าฉันต้องการที่จะ ถูกขูดออกหน้านั้น ดังนั้นบางทีผมเรียกรายชื่อนี้ นี่คือวิธีการหลายรายการที่ผมได้เลือก และฉันก็สามารถยืนยันหรือปฏิเสธบาง ของรายการแนะนำอื่น ๆ ที่จะได้ไปเพิ่ม สิ่งที่จะถูกคัดลอก ดังนั้นตอนนี้เราจะเห็นว่ามี ร้อยรายการที่เลือก ถ้าผมต้องการที่จะมีเขตข้อมูลอื่นที่ฉัน ยังขูดที่เกี่ยวข้องกับเรื่องนี้ บอกว่าผมต้องการที่จะขูดราคา เช่นเดียวแล้วฉันสามารถทำเช่นเดียวกัน ดังนั้นนี่คือการสาธิตว่าเป็น ที่แข็งแกร่งมากน้อยเพราะตอนนี้ก็ หยิบขึ้นมาเมืองแทน เพียงราคาที่ฉันต้องการ และตอนนี้ก็หยิบขึ้นมา 200 สิ่งที่ คุณสามารถกลับไปและลบ คุณสามารถลองอีกครั้ง แต่ไม่รับประกัน นี่คือวิธีการทำงานนี้บางครั้ง ในขณะที่คุณดูที่นี่ตอนนี้ก็บอกว่า 96 ขึ้นที่นี่ ก็หยิบขึ้นมามากที่สุดของการเชื่อมโยง ที่คุณต้องการที่จะขูด แต่ไม่ จำเป็นต้องทั้งหมดของพวกเขา เครื่องมือที่มีประโยชน์อีกประการหนึ่งของชุดกิโมโนแม้ว่า คือคุณสามารถไปที่คุณสมบัติขั้นสูง ที่นี่ให้ไปที่ขั้นสูง และมันจะแสดงให้คุณเห็น รายละเอียดของที่ไม่ซ้ำกัน วิธีการเข้าถึงแบบ HTML แท็กที่คุณต้องการที่จะขูด ดังนั้นสำหรับรายชื่อถ้าคุณดูที่นี่ ถ้าคุณเข้าถึงครอบคลุมช่วงพี div ที่ คุณสามารถจริงเพียงแค่ใช้ นี้ในรหัส Nokogiri ของคุณ ซึ่งก่อนที่เราจะได้ span.txt ในการเข้าถึงแต่ละรายการ ถ้าฉันเพียงแค่ต้องการให้ข้อความ รายชื่อที่อยู่ในการ ฉันสามารถป้อนข้อมูล div พื้นที่พี ช่วงพื้นที่ช่วงพื้นที่พื้นที่ และมันจะบรรลุผลเดียวกัน และสำหรับผู้ที่มีความสนใจ ในการใช้การแสดงออกปกติ มันเกิดขึ้นยังให้คุณปกติ การเรียงลำดับการแสดงออกของสตริงที่จะใส่ ที่จะหาสิ่งที่ คุณกำลังพยายามที่จะหา ดังนั้นจึงมีอีกหนึ่งคุณลักษณะที่เย็น ของชุดกิโมโนที่คุณสามารถเลขหน้า, ซึ่งไม่เพียง แต่ฉันสามารถขูด ผลที่ได้จากหน้านี้ ฉันสามารถคลิกที่เล็ก ๆ น้อย ๆ นี้ ปุ่มที่นี่เลข, ระบุปุ่มที่จะ พาฉันไปที่หน้าถัดไป แล้วมันก็จะรู้ว่า มันสามารถย้ำไปยังหน้าถัดไป แล้วขูดทั้งหมดของ the-- เป็นเวลานาน ที่เป็นรูปแบบเดียวกันของ course-- สเคปทั้งหมดของการเชื่อมโยงเหล่านั้นเช่นกัน ดังนั้นกิโมโนเพราะไม่ต้องการที่จะ ทำงานร่วมกับ Craigslist สิ่งที่เราได้ทำ คือผมได้ Kimonofied ฮาร์วาร์สีแดงเข้ม ฉันได้ดึงออกมาจากบางส่วนของการจัดเรียงของ บทความที่ให้ความสำคัญด้านบนยืนยันที่นี่ พูดสิ่งเหล่านี้ ผมได้รวบรวม API นี้ สำหรับคุณก่อนเวลา แต่อย่างอื่นคุณจะทำอะไร คือคุณก็จะคลิกเสร็จสิ้น ใส่ในรายละเอียด API ของคุณ ตั้งค่าให้อย่างใดอย่างหนึ่ง รวบรวมข้อมูลโดยอัตโนมัติหรือด้วยตนเอง เพื่อให้คุณสามารถอัปเดตของคุณ ข้อมูลทุก 15 นาที รายสัปดาห์ประจำวันสิ่งที่คุณต้องการ ชื่อ API ของคุณ สร้างเอพีไอ เพื่อประโยชน์ของคุณผมได้สร้าง สีแดงเข้มหน้า API แล้ว ดังนั้นคุณก็สร้าง บัญชีในชุดกิโมโนและมัน จะเก็บ APIs ทั้งหมดของคุณสำหรับคุณ เพื่อเป็นหลักนั่นคือทั้งหมดที่คุณ ครูที่แตกต่างกันแยกจากกัน ดังนั้นหากเราดูที่นี่นี้เป็น การเชื่อมโยงความคิดเห็นที่ฉันได้เก็บรวบรวม เหล่านี้เป็นที่โดดเด่น การเชื่อมโยงที่ฉันได้เก็บรวบรวม และเหล่านี้จะอ่านมากที่สุด การเชื่อมโยงที่ฉันได้เก็บรวบรวม จากภูมิประเทศ API นี้ล่าสุด ดังนั้นหากคุณสามารถดูที่นี่ เหล่านี้จะเป็นที่โดดเด่น เหล่านี้จะเป็นความคิดเห็นที่ ซึ่งในตัวอย่างนี้ ผมเคยทำงานร่วมกันพวกเขาทั้งหมด เป็นหนึ่งในคอลเลกชัน แต่ถ้าคุณเพียงแค่เล่นรอบกับมัน นิด ๆ หน่อย ๆ คุณสามารถแยกมันขึ้นมา และแบ่งมันได้อย่างไร คุณต้องการที่จะเป็นเวลานาน เป็นรูปแบบที่แตกต่างกันเล็กน้อย เพียงเพื่อเล่นรอบกับนี้ การรวบรวมข้อมูลการตั้งค่าซึ่งเป็นหนึ่งในข้อเสีย คือคุณสามารถรวบรวมข้อมูลขึ้น ถึง 25 หน้าในเวลา นั่นเป็นหนึ่งในปัจจัยที่ จำกัด แต่ที่นี่ถ้าคุณตั้งค่า ในการรวบรวมข้อมูลด้วยตนเองนี้ เป็นวิธีที่คุณบอกว่า ในการปรับปรุงข้อมูลของคุณ และที่นี่คุณสามารถดูประวัติของการรวบรวมข้อมูล ของทุกอย่างที่คุณได้รวบรวมข้อมูล และพวกคุณสามารถกลับไปลงทะเบียน เล่นรอบกับทุกวิธีที่แตกต่างกัน ที่คุณสามารถปรับเปลี่ยนและใช้ข้อมูลของคุณ กิโมโนที่สามารถตั้งค่าได้ถึง ขูดเชื่อมโยงการเชื่อมโยงภายใน และคุณจะทำอย่างไรเพื่อให้เป็นครั้งแรกโดย ขูดรายการลิงก์, แล้วใช้ API เป็นที่ กระโดดออกจากจุด API อื่น ที่คุณสร้างสคริปต์ แต่ที่ซับซ้อนมากขึ้นกว่า สิ่งที่เรากำลังจะได้รับในวันนี้ เพื่อให้เป็นชุดกิโมโน เราจะพูดคุยเกี่ยวกับข้อดีและ ข้อเสียของการ Nokogiri และชุดกิโมโน Nokogiri ก็รวดเร็วจริงๆ มันเป็นเรื่องง่ายที่จะทดสอบ คุณก็สามารถทำให้สิ่งที่จะ คอนโซลและง่ายต่อการกำหนดค่า คุณสามารถตัดสินใจได้ว่าสิ่งที่ คุณต้องการที่จะถูและจัดเก็บ มีข้อ จำกัด หน้าไม่มี ที่จริงผมใช้มันเพื่อขูดเช่น 1800 เซาท์แอฟริกันเว็บไซต์โรงเรียน สำหรับอีเมลสำหรับการฝึกงานที่ฉันได้อย่าง เพื่อให้เป็นไปได้ แต่วิธีที่ดีที่สุด จะแยกสคริปต์ เพราะถ้ามันล้มเหลวแล้ว คุณไม่ได้รับอะไร แต่ถ้าคุณทำร้อย อาจจะ 200 หน้าในเวลา แล้วคุณมีโอกาสบางอย่างน้อย ได้รับมันทีละน้อยโดยเฉพาะอย่างยิ่ง ถ้าคุณมีอินเทอร์เน็ตที่ไม่ดี แต่น่าเสียดายที่มันสามารถขูด HTML ดังนั้นถ้าคุณมี โหลดแบบไดนามิก pages-- และฉันจะแสดงให้คุณเห็นตัวอย่าง เช่นเรือคายัคใน second-- Nokogiri น่าเสียดาย ไม่สามารถขูดว่า แต่เป็นชุดกิโมโนยังใช้งานง่าย ในขณะที่คุณเห็นมันเป็นหลัก จุดและคลิก มันสามารถขูด JavaScript แต่น่าเสียดายที่มีสูงสุด วิธีการหลาย ๆ หน้าคุณสามารถขูด บางครั้งก็เล็ก ๆ น้อย ๆ ยากที่จะกำหนดค่า จะได้รับการสับสน แต่ก็แน่นอน สิ่งที่ต้องพิจารณา ถ้าคุณไม่ได้พยายามที่จะมี ขูดแข็งแกร่งสุดบำรุงรักษา ถ้าคุณเพียงต้องการที่จะได้รับ ทุกอย่างออกของหน้าได้อย่างรวดเร็ว แล้วกิโมโนเป็นจริงๆ เครื่องมือที่ดีที่จะใช้ และที่ผมกล่าวถึงก่อนที่จะมี คุณลักษณะขั้นสูงของชุดกิโมโน ที่แสดงให้เห็นถึงวิธีการ เข้าถึง HTM​​L ที่ไม่ซ้ำกัน องค์ประกอบซึ่งจะเป็นประโยชน์สุดแม้กระทั่ง ถ้าคุณกำลังทำงานใน Nokogiri ดังนั้นหากเราไปที่เว็บไซต์เรือคายัคสำหรับ ตัวอย่างเช่นคุณสามารถดูมี is-- หรือบางทีคุณอาจไม่สามารถมองเห็น แต่ถ้าผมแสดงให้คุณ URL สำหรับเรือคายัค, นี้จริงเป็นเพียงแหล่งที่มาของ URL นี้คือ URL ก่อนที่จะถูก แก้ไขโดยสิ่งที่สคริปต์ JavaScript ที่พวกเขาได้เกิดขึ้น และก็จะไปดูที่แตกต่างกัน จากการตรวจสอบองค์ประกอบ ดังนั้นถ้าคุณผ่านไปและคุณ ตรงกับขึ้นตรวจสอบธาตุ รหัสรหัสที่มาก็ จริงที่เกิดขึ้นจะแตกต่างกัน และนี่คือเหตุผลหลัก Nokogiri ไม่สามารถขูดเว็บไซต์โหลดแบบไดนามิก เพราะเป็น Nokogiri ขูด URL แหล่งที่มาของ ในขณะที่ชุดกิโมโนเป็นจริง ขูดสิ่งที่คุณเป็นหลัก มองเห็นในที่เลือกธาตุ ดังนั้นถ้าผมผ่านไปและฉัน และพยายาม Kimonofy เรือคายัค, ที่จริงผมสามารถไปถึง และเลือกราคา มันเป็นความยากเล็ก ๆ น้อย ๆ และในกรณีนี้ก็ จริงเห็นราคานี้ เป็นที่แตกต่างจากนี้ ดังนั้นในขณะที่คุณสามารถ configure-- หรือ ถ้าไม่ได้โหลดแบบไดนามิก คุณสามารถกำหนดค่า Nokogiri ที่จะได้รับสิ่งเหล่านี้ เพราะการจัดรูปแบบเล็กน้อย ที่แตกต่างกันสำหรับรายชื่อนี้ ขณะที่มันถูกเมื่อเทียบกับส่วนที่เหลือ ของพวกเขาและคุณสามารถดูที่นี่ มันหายไปจริงและ เลือกทั้งหมดราคาเที่ยวบิน บางทีฉันอาจจะต้องการเลือก เวลาของเที่ยวบินเช่นกัน และฉันสามารถผ่านไปและ การเรียงลำดับของการกำหนดค่าที่ ฉันไม่ต้องการที่ ฉันเพียงต้องการเวลาของเที่ยวบินถัดไป และแล้วหลังจากที่สองของเหล่านี้ จะผ่านจะได้รับภาพ ดังนั้นกิโมโนสวยสมาร์ท มันเป็นเพียงแค่ไม่ได้ค่อนข้างเป็นที่แข็งแกร่ง มีบางอื่น ๆ ทางเลือกที่คุณสามารถใช้ และฉันจะแสดงให้คุณเห็นพวกเขาที่นี่ หากคุณมีความสะดวกสบายมากขึ้นในการ งูใหญ่แทนทับทิมบางที มีห้องสมุด เรียกว่าซุปที่สวยงาม คุณสามารถใช้ที่ มันคล้ายกันมากกับ Nokogiri แต่ก็มีคุณสมบัติอื่น ๆ อีกไม่กี่ คุณสามารถค้นหาแท็กและ แล้วย้ายขึ้นหรือย้ายไปด้านข้าง มี PyQt เป็น นี้ที่จริงสามารถขูดแบบไดนามิก เว็บไซต์เพราะการจัดเรียงของ เป็น WebKit ที่อ้างว่าเป็น เบราว์เซอร์โดยไม่ต้องมีจริง เป็นเบราว์เซอร์ ดังนั้นมันจะรอให้ทุก จาวาสคริปต์ในการโหลดครั้งแรกแล้ว ไปและพยายามขูดเว็บไซต์ ถ้าคุณต้องการที่จะติดกับทับทิมคุณ สามารถไประดับหนึ่งขึ้นมาจาก Nokogiri คุณสามารถใช้ Capybara กับ เสื้อคลุมผี และนี้สามารถจริง หลักทำสิ่งเดียวกัน เป็น PyQt ซึ่งเป็นมันเป็น WebKit มันรอให้ จาวาสคริปต์ในการโหลดครั้งแรก ถ้าคุณทำเล่น ๆ กับมันพอ คุณยังจะได้รับมันคลิกไปที่สิ่งที่ ดังนั้นหากมีการเชื่อมโยงว่า ไม่ได้เป็น href คลาสสิกที่ เส้นทางสามารถเข้าถึงได้ง่ายและ มันเป็นบางสิ่งที่ตรวจพบ JavaScript คลิกคุณจริงสามารถทำเช่นนั้น ห้องสมุดที่นิยมมากขึ้น เพื่อจำลองผู้ใช้ คือใน JavaScript ซึ่งเป็น PhantomJS นี้เห็นได้ชัดสามารถขูดแบบไดนามิก เพราะเว็บไซต์เป็นหลัก ทำท่าจะเป็นโครเมี่ยม โดยไม่ต้องมีส่วนติดต่อผู้ใช้ และแล้วแน่นอนที่สุด ที่แข็งแกร่ง แต่ตัวเลือกที่ช้าที่สุด เป็นซีลีเนียมอัตโนมัติเบราว์เซอร์ และโชคร้ายที่ คุณไม่ได้ไปได้ สามารถที่จะทำนี้ภายใน IDE CS50 ของคุณ เพราะสิ่งที่มันเป็นหลัก ไม่สามารถบูทขึ้น Chrome ของคุณ Firefox, สิ่งที่เบราว์เซอร์ ที่คุณต้องการใช้ และมันอาจจะติดตามเมาส์ของคุณ การเคลื่อนไหวของสิ่งที่คุณพิมพ์ใน และมันก็เรียงลำดับของ โดยอัตโนมัติกระบวนการนี​​้ ดังนั้นจึงได้รับการพัฒนาเป็นจัดเรียงของ เว็บไซต์เครื่องมือทดสอบอัตโนมัติ แต่คนจำนวนมากใช้ ซีลีเนียมขูดเว็บไซต์ ที่พวกเขามิฉะนั้นจะมี จำนวนมากของความยากลำบากขูด กับบางส่วนของอื่น ๆ เหล่านี้เครื่องมือที่เร็วขึ้น ดังนั้นนั่นคือทั้งหมดที่ฉันมีสำหรับเว็บขูด มีความสุข. ผู้ชม: คำถาม โรเบิร์ต KRABEK: ใช่ ผู้ชม: มีกลไกในการกัญชา เว็บไซต์เพื่อให้คุณสามารถโดยทั่วไป ผ่านมันไปในภายหลัง โรเบิร์ต KRABEK: ใช่ ดังนั้นเราใส่ในของเรา ตัวอย่างเช่นสำหรับทั้งสองของพวกเขา เราใส่เข้าไปในเว็บไซต์ทั้งหมด doc และเพื่อให้คุณสามารถใช้เวลาเพียงแค่จริง doc ตัวแปรและเขียนไปยังแฟ้ม ดังนั้นถ้าผมอยากจะที่จะทำได้ เขียนมันออกมาเป็นไฟล์ HTML, แล้วแทนการใช้ OpenURI และคำขอม้วน, แล้วฉันก็สามารถเปิดเอกสาร HTML และแล้วค้นหาว่า ผู้ชม: แต่คุณสามารถรักษา ประเภทของประสบการณ์ออนไลน์ ขณะที่คุณทำแบบออฟไลน์ ตัวอย่างเช่น. เมื่อคุณอยู่ บินเป็นเวลาหลายชั่วโมง ฉันต้องการที่จะเก็บพื้น เว็บไซต์ทั้งหมด [ไม่ได้ยิน] โรเบิร์ต KRABEK: ใช่ว่า exactly-- ดังนั้นแท้จริงสิ่งที่จะทำ มันก็นำทุกอย่าง ที่จะเป็นที่ URL นี้ ดังนั้นถ้าเราวิ่งม้วนก็ การทั้งหมดของ HTM​​L นี้ และจะเก็บไว้ ภายใน doc ตัวแปร ดังนั้นแล้วคุณสามารถทำสิ่งที่ คุณต้องการที่จะทำอย่างไรกับเอกสาร คุณสามารถส่งออกไปยังแฟ้ม ผู้ชม: แต่มันไม่ได้เชื่อมโยง มันไม่ได้แบบไดนามิก มันเรียกซ้ำไม่ได้ใช่มั้ย? คุณจะเห็นสิ่งที่ฉันหมายความว่าอย่างไร ฉันพยายามที่จะโดยทั่วไปการจัดเรียงของกัญชา เว็บไซต์ทั้งหมดในฮาร์ดดิสก์ของฉัน เพื่อที่ฉันโดยทั่วไปจะทำมัน เป็นเวลาหลายชั่วโมงโดยไม่ต้องอินเทอร์เน็ต โรเบิร์ต KRABEK: ขวา ดังนั้นถ้าผม had-- ดังนั้นที่เป็นไฟล์ของฉัน I / O? ดังนั้นนี่คือไฟล์ I / O ดังนั้นแทนที่จะพูดว่า นี้ผมเรียก craigslist.html นี้ ผมจะเปิดขึ้นมา ฉันจะทำให้ doc เป็นมัน ฉันปิดแฟ้ม และจากนั้นเพียงเพราะ CS50 IDE ที่อยู่บนระบบคลาวด์ที่เป็นสิ่งที่ ฉันจะไปที่นี่ ฉันสามารถดาวน์โหลดไฟล์ และแล้วที่จะเป็นในฮาร์ดดิสก์ของฉัน เพื่อให้คุณสามารถทำแบบนั้น หรือถ้าคุณจะอยู่ที่บ้านไม่ได้ใช้ CS50 IDE เช่น Sublime หรือบางสิ่งบางอย่าง นี้ง่ายยิ่งขึ้นเพราะ นี้ที่มีอยู่ทั้งหมดในประเทศ ไม่เชื่อมโยงกับอินเทอร์เน็ต ผู้ชม: ฉันเห็น นี่คือปัญหาหนึ่งโดยเฉพาะ คุณสามารถทำมันซ้ำเพื่อให้คุณ ไปหลายชั้นชนิดของสิ่งลึก? โรเบิร์ต KRABEK: ฉันสามารถดาวน์โหลดโฟลเดอร์ เช่นกันถ้านั่นคือสิ่งที่คุณขอ ผู้ชม: ใช่ โรเบิร์ต KRABEK: เย็น