ให้ฉันถามคุณเรื่องนี้
หากคุณเป็นเจ้าของเว็บไซต์
คุณต้องการให้คนอื่นขูดเว็บไซต์ของคุณหรือไม่?
คุณต้องการให้คนอื่นเข้าถึงข้อมูลของคุณหรือไม่ บางที Airbnb ของคุณและคุณทำงานอย่างหนักเพื่อลงรายการผลิตภัณฑ์เหล่านี้
ข้อมูลต่าง ๆ ที่นี่
มันยุติธรรมไหมที่ทุกคนสามารถมาและเพียงแค่คว้าข้อมูลนี้และทำสำเนาเว็บไซต์ของคุณ?
ไม่ได้จริงๆ
ถูกต้อง.
ฉันหมายความว่ามันขึ้นอยู่กับ
โดยส่วนใหญ่ คุณไม่ต้องการให้มีคนมาขูดเว็บไซต์ของคุณ
แม้ว่า HTML และข้อมูลของเว็บไซต์จะพร้อมใช้งานสำหรับเราทุกคน แต่อินเทอร์เน็ตของเราทำงานอย่างไรเพื่อให้ผู้คนสามารถเห็นหน้าเว็บต่างๆ
ได้
เว็บไซต์ส่วนใหญ่ไม่ต้องการให้คุณขูดข้อมูล
ตอนนี้มีวิธีหนึ่งที่เว็บไซต์บอกคุณถึงสิ่งที่คุณทำได้และไม่สามารถขูดได้
เรียกว่า Robots Dot Text
เราเพียงแค่พูดที่ส่วนท้ายของเครื่องหมายทับ URL
หุ่นยนต์ดอท txt
ถ้าฉันคลิกเข้าไป
ดูนั่นสิ
Airbnb มีหุ่นยนต์ .txt
หุ่นยนต์ txt พูดง่ายๆ ว่า เฮ้ ถ้าคุณเป็นหุ่นยนต์ ถ้าคุณเป็นเว็บสแครปเปอร์หรือแมงมุม
นี่คือเหตุผลที่คุณได้รับอนุญาตและไม่ได้รับอนุญาตให้ทำ
หมายความว่าพวกเขาจะป้องกันเราหากเราทำผิดกฎหรือไม่?
ไม่ พวกเขาไม่สามารถป้องกันเราได้จริงๆ
แต่นี่เป็นพื้นที่สีเทาที่คุณต้องการให้มีจริยธรรมที่นี่ และขูดเฉพาะข้อมูลที่เว็บไซต์อนุญาตเท่านั้น
ดังนั้นหากเราดูหุ่นยนต์ txt คุณเห็นที่นี่ว่า Airbnb ได้สร้างไฟล์ภาษีที่บอกเราถึงสิ่งที่คุณทำได้และไม่สามารถขูดได้
ตัวอย่างเช่น เราดูตัวแทนผู้ใช้ที่นี่ซึ่งบอกว่า Googlebot Airbnb กำลังบอกว่า สวัสดี Googlebot
คุณได้รับอนุญาตให้ขูดข้อมูลนี้ แต่เราไม่อนุญาตให้คุณขูดปฏิทินศิษย์เก่าของบัญชีและพบว่ามีจำนวนมาก
สิ่งที่ไม่ได้รับอนุญาต
แล้วบอทการค้นหาของ Bing ล่ะ?
Bing คุณได้รับอนุญาตให้ทำเช่นนี้ แต่คุณทำไม่ได้
ขูดข้อมูลใด ๆ นี้
เรามียานเดกซ์
เรามีอะไรอีกบ้าง?
เรามี Baidu Spider
แล้วเราก็มี User Agent Starr ด้วย
นั่นหมายถึงใครอีก มีใครอีกไหม?
คุณได้รับอนุญาตให้ขูดสิ่งนี้ แต่ไม่มีข้อมูลนี้
เอาล่ะ ไปที่อื่นกันเถอะ
ไปที่ Udemy Dotcom กันเถอะ
ที่นี่เราเห็นว่าใครก็ตามที่เราไม่ต้องการให้คุณขูดหรือรวบรวมข้อมูลผ่านข้อมูลใด ๆ นี้ แต่เราอนุญาตให้คุณเข้าถึงข้อมูลนี้ได้
API 2 0 แน่นอน การให้ยืมส่วนประกอบ
เอาล่ะ มันแย่มาก
ดูเหมือนว่า Udemy จะไม่อนุญาตให้เราทำอย่างอื่นนอกจาก API 2 นี้จริงๆ 0 สิ่งที่เราจะกลับมา
แล้ว Hacker News ล่ะ?
เรากำลังจะสร้างโครงการเกี่ยวกับ Hacker News
มาดูกันว่า Hacker News อนุญาตให้เราขูดหรือไม่
ไม่เป็นไร.
ดังนั้นรายการนี้จึงเล็กกว่าเล็กน้อย
เราเห็นว่าสำหรับผู้ใช้ทั้งหมด
เราไม่ได้รับอนุญาตให้ใช้ปลายทางเหล่านี้
ตราบใดที่คุณไม่ได้ใช้ URL เหล่านี้ เราก็พร้อมใช้
นั่นคือถ้าเราต้องการขูดแค่หน้าแรก
ซึ่งอยู่ตรงนี้
ไม่เป็นไร.
หากเรากำลังพยายาม สมมติว่า ไปที่ความคิดเห็น
ก็ดีเหมือนกัน เพราะอันนี้ไม่มีในข้อความของโรบ็อต
อีกครั้ง ถ้าคุณจำได้ ถ้าเราไปที่ข้อความหุ่นยนต์
ไม่เป็นไร.
สิ่งเดียวที่พวกเขาถามคือเรามีความล่าช้าในการรวบรวมข้อมูล 30
นั่นคือ ถ้าเราจะรวบรวมข้อมูลเว็บไซต์ เราควรหยุดชั่วคราวเพื่อที่เราจะได้ไม่ใช้โปรแกรมเพื่อเข้าชมเว็บไซต์อย่างต่อเนื่อง
เพราะจะทำให้เซิร์ฟเวอร์ของพวกเขาทำงานหนักเกินไป และอาจจะทำให้เว็บไซต์ช้าลง
แล้วเราเพิ่งเรียนรู้อะไร?
เราเรียนรู้ว่ามีวิธีขูดเว็บไซต์อย่างมีจริยธรรมและผิดจรรยาบรรณ
ได้ คุณสามารถขูดเว็บไซต์ใดก็ได้ที่คุณต้องการ
และแท้จริงแล้วมีปลั๊กอินโครเมียมอยู่ด้วย
หากคุณใช้ Google Chrome เสียบ Web Scraper มี Web Scraper มากมายที่คุณสามารถใช้เพื่อขูดเว็บไซต์โดยไม่ต้องเขียนโค้ดแม้แต่บรรทัดเดียว
การฝึกเขียนโปรแกรมอย่างมีจริยธรรมถือเป็นเรื่องดี และนั่นก็หมายถึงการตรวจสอบข้อกำหนดและเงื่อนไขของเว็บไซต์ก่อนที่คุณจะขูดมัน
ตรวจสอบหุ่นยนต์ txt เพื่อดูว่าคุณสามารถและไม่สามารถขูดอะไรได้
เนื่องจากโดยปกติแล้ว ข้อมูลที่คุณคัดลอกจากเว็บไซต์ไม่ควรนำไปใช้เพื่อวัตถุประสงค์ทางการค้า
เพราะคุณกำลังใช้ความพยายามของผู้อื่นเพื่อสร้างรายได้
และนี่คือเหตุผลที่เมื่อเราไปที่ Hacker News และขอเวลา 30 วินาทีอย่างโหดร้าย
ถูกต้อง.
หากคุณกำลังขอข้อมูลจากเว็บไซต์ไปยังโปรแกรมของคุณอย่างจริงจัง นั่นเป็นการส่งสแปมโดยพื้นฐานแล้วเพราะอาจทำให้
Hacker News เสียหายได้
ก่อนที่เราจะพูดถึงการขูดเว็บ ฉันต้องการทราบอีกอย่างหนึ่ง และนั่นคือแนวคิดของ
API
หากคุณจำเมื่อเราเข้าถึง Udemy Robots txt พวกเขาบอกเราว่ามีพื้นที่ที่อนุญาตซึ่งเราสามารถขูดหรือจุดปลายที่เราสามารถใช้ได้
คุณเห็นบางเว็บไซต์ที่ให้คุณเข้าถึงข้อมูลได้จริง
ตัวอย่างเช่น Udemy ให้ API ผู้สอนแก่เรา
นั่นคือ หากคุณเป็นผู้สอนใน Udemy คุณสามารถใช้ API ของพวกเขาได้
คุณสามารถดูได้ที่นี่เพื่อรับข้อมูลที่แตกต่างกัน
บางทีคุณอาจได้รับรายการทบทวนหลักสูตร บางทีอาจเป็นรายการคำถามของหลักสูตรก็ได้
แต่ถ้าฉันไปที่นี่และป้อนสิ่งนี้ใน URL ของฉัน ฉันจะได้รับโทเค็นที่ไม่ถูกต้องหายไป
นั่นก็เพราะว่าตอนนี้ฉันไม่ใช่ผู้สอน หรืออย่างน้อยก็ยังไม่ได้ยืนยันตัวตนว่าเป็นผู้สอน
ใน Udemy จะมีข้อความว่า เฮ้ ข้อมูลนี้มีไว้สำหรับผู้สอนที่ถูกต้องเท่านั้น ฉันต้องส่งโทเค็นเพื่อพิสูจน์ว่าฉันเป็นผู้สอนใน
Udemy
และเว็บไซต์จำนวนมากให้สิ่งที่เราเรียกว่า API หรือการเข้าถึงอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันแก่คุณ
ในรูปแบบที่เรียกว่า JSON to well ให้ข้อมูลที่คุณต้องการและบางเว็บไซต์อนุญาตให้คุณทำเช่นนี้ได้หากคุณเป็นผู้ใช้ที่ถูกต้องเท่านั้น
ตัวอย่างเช่น หนึ่งใน API ที่ได้รับความนิยมมากที่สุดคือ GitHub API ซึ่งคุณสามารถเข้าถึงข้อมูลที่แตกต่างจาก
GitHub
แต่เพื่อให้ใช้งานได้ เราต้องสร้างบัญชีผู้ใช้และตรวจสอบเพื่อให้เราเป็นอย่างที่เราพูด
แต่ก็ยังมีเว็บไซต์อย่าง Star Wars API ที่ให้เราเข้าใช้ได้ฟรี
ก็คือ ใครๆ ก็ใช้ได้
เราไม่จำเป็นต้องยืนยันว่าเราเป็นผู้ใช้
เราไม่ต้องให้โทเค็นเมื่อทำการร้องขอ
แต่เราสามารถขอข้อมูลได้
ตัวอย่างเช่น ถ้าฉันทำ swap API และพิมพ์คน แล้วกด Enter
ดูนั่นสิ
ฉันได้รับข้อมูลทั้งหมดนี้ฟรี เพื่อที่ฉันจะสามารถสร้างแอปที่เกี่ยวข้องกับ Star Wars ได้ ซึ่งสิ่งนี้คือจุดยืนของความสุข
ย่อมาจาก Star Wars API และเราสามารถดึงข้อมูลทั้งหมดที่เราต้องการได้
เรายังมีสิ่งต่างๆ เช่น ตัวยึดตำแหน่ง JSON ซึ่งฉันชอบใช้เมื่อสร้างโครงการง่ายๆ
ที่เราสามารถรับข้อมูลต่างๆ เช่น ภาพถ่ายได้
คุณจะเห็นได้ว่านี่คือ API ที่ให้ข้อมูลแก่เรา
พร้อมรูปถ่ายต่างๆ ที่เราสามารถใช้ได้
บางทีเราอาจมีโพสต์ที่แตกต่างกันที่เราสามารถใช้ได้
และอีกครั้ง นี่คือสิ่งที่เราเรียกว่าในรูปแบบ JSON ซึ่งไม่ใช่ HTML แต่เป็นเพียงข้อมูลในเวอร์ชันที่ล้างข้อมูลเพื่อให้ผู้คนสามารถใช้งานได้
วิธีที่ง่ายที่สุดในการรับข้อมูลจากเว็บไซต์คือการใช้ API
บางครั้งเว็บไซต์ทำให้เราสามารถเข้าถึงได้ง่าย หรืออาจมี API แต่จำกัดไว้เฉพาะผู้ใช้บางรายเท่านั้น
บางทีคุณอาจต้องลงทะเบียนกับบริการของพวกเขา
บางทีคุณอาจต้องจ่ายค่า API ของพวกเขา
ในกรณีนี้เรามีสิ่งนี้
แต่ก็มีการขูดเว็บด้วย ซึ่งอาจเป็นเว็บไซต์ที่ไม่อนุญาตให้คุณเข้าถึง API
บางทีคุณอาจต้องการเพียงแค่มีข้อมูลนั้น
ตัวอย่างเช่น Hacker News ไม่มี API เท่าที่ฉันรู้
ดังนั้นเราจึงอาจต้องการเพียงแค่ขูด HTML เว็บไซต์ทั้งหมด และดูว่าเราสามารถใช้อะไรได้บ้าง
แล้วเราจะขูดเว็บไซต์โดยใช้ Python ได้อย่างไร?
มาดูกันในวิดีโอหน้า