>> [เล่นเพลง]
โรเบิร์ต 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: เย็น