ยินดีต้อนรับกลับ.
ถึงเวลาที่จะทำอะไรบางอย่าง
ได้ผลจริง ๆ ด้วยบอท Twitter ของเรา
แล้วเรามาทำอะไรที่นี่?
ฉันต้องการสร้างบอท
บอทนี้ไปได้สวย คุณต้องการดีกับผู้ติดตามของคุณจริงๆ และคุณต้องการติดตามผู้คนกลับ
ถ้าคุณดูจริงๆ ฉันสวย น่ากลัวมาก
ฉันมีเพียงหกคนที่ฉันกำลังติดตาม
แต่ถ้าฉันต้องดูผู้ติดตามทั้งหมดของฉันและติดตามพวกเขาทุกคน นั่นคือกว่า 10,000
คลิก
นั่นเป็นงานที่ต้องทำด้วยตนเอง
เราสามารถทำสิ่งนั้นกับบอทของเราได้หรือไม่?
ใช่คุณสามารถ
ลองทำบอทที่ใจกว้างกัน
ดังนั้นบอทใจกว้างนี้จะติดตามกลับมาเสมอ
คุณจะสร้างสิ่งนี้ได้อย่างไร
เราแค่วนซ้ำและพูดแทนผู้ติดตาม
ใน.
แล้วนี่ T. ป. ให้สิ่งที่เรียกว่าเคอร์เซอร์แก่เรา
ทีนี้เคอร์เซอร์นี้คืออะไร?
ถ้าเราไปที่เอกสารที่นี่และฉันพิมพ์เคอร์เซอร์
เราจะไปได้ดี กวดวิชาเคอร์เซอร์จริง
หากเราอ่านที่นี่ เราจะเห็นว่าเราใช้การแบ่งหน้าใน Twitter API เป็นจำนวนมาก
ดังนั้นไม่ว่าเราจะผ่านไทม์ไลน์หรือรายชื่อผู้ใช้หรือข้อความก็ตาม
เราต้องคลิกผ่านหน้าต่างๆ ใช่ไหม?
มักจะมีผู้ติดตามจำนวนมากหรือมีข้อมูลไทม์ไลน์จำนวนมาก
ดังนั้นเคอร์เซอร์จึงช่วยให้เราดูทุกอย่างบน Twitter ได้อย่างง่ายๆ โดยพื้นฐานแล้ว ไม่ว่าจะผ่านไทม์ไลน์ทั้งหมดหรือผ่านรายชื่อผู้ติดตามทั้งหมด
และพวกเขายังให้บทแนะนำที่ดีเกี่ยวกับวิธีการใช้งาน
คุณเห็นตรงนี้ เช่น ลองทำให้มันใหญ่ขึ้นหน่อย
เราเห็นว่าเราสามารถใช้สารตั้งต้นเพื่อทำรายการไทม์ไลน์ของผู้ใช้ API เพื่อคว้ารายการทั้งหมดบนไทม์ไลน์
ดังนั้นด้วยเคอร์เซอร์ เราจึงสามารถสร้าง api dot ได้
ผู้ติดตามเพื่อคว้าผู้ติดตามทั้งหมด
แล้วเราก็ทำดอทไอเท็ม
เพื่อให้เราสามารถวนซ้ำผู้ติดตามทั้งหมด
ตอนนี้กับผู้ติดตามคนนี้
เอาล่ะ มาพิมพ์กัน
ตอนนี้ฉันกำลังจะพิมพ์ผู้ติดตามหรือผู้ติดตามในกรณีนี้เพราะเรากำลังวนซ้ำที่นี่แล้วพูดชื่อดอท
ทีนี้ ปัญหาที่นี่คือเมื่อเราทำอะไรแบบนี้ สมมุติว่าเราวนซ้ำหลายๆ
อย่าง เราจะโดน API ซ้ำแล้วซ้ำเล่า
และ Twitter จะไม่ถูกใจสิ่งนี้
ฉันหมายถึง นี่เป็นตัวอย่างง่ายๆ แต่เมื่อเราเข้าถึง Twitter API ที่โจมตีเซิร์ฟเวอร์ Twitter
อย่างต่อเนื่อง ซึ่ง Twitter ต้องจ่าย และหากทุกคนในโลกเข้าถึง Twitter API ซ้ำแล้วซ้ำเล่าอย่างรวดเร็ว
สมมติว่า Python อย่างที่ทราบกันดีว่าบนเครื่องทำงานเร็วมาก
มันจะโอเวอร์โหลดเซิร์ฟเวอร์และมันจะเสียเงินเป็นจำนวนมากหรือทำให้เซิร์ฟเวอร์พัง
ดังนั้นพวกเขาจึงใช้บางอย่างที่เรียกว่าการจำกัดอัตรา ซึ่งฉันได้รับอนุญาตให้ขอ
Twitter API เท่านั้น สมมติว่าทุก ๆ สองสามมิลลิวินาที เพื่อไม่ให้เซิร์ฟเวอร์ขัดข้อง และทำให้เราทำงานกับขีดจำกัดอัตราของ
Twitter ได้จริง
ดังนั้นถ้าฉันพิมพ์ตัวจำกัดอัตราที่นี่
มีข้อผิดพลาดจริงๆ
คุณสามารถดูข้อผิดพลาดขีดจำกัดอัตราได้ที่นี่ ซึ่งจะเพิ่มขึ้นเมื่อวิธี API ล้มเหลวเนื่องจากการถึงขีดจำกัดอัตราของ
Twitter
ทวีต B ตรงนี้ทำให้เราสามารถใช้อัตราข้อผิดพลาดในการพูดว่า เฮ้ ถ้าเราเจอข้อผิดพลาดนี้ เรามาทำอะไรกัน
ฉันจะสร้างฟังก์ชันตัวช่วยเล็กน้อย
ฉันจะบอกว่ากำหนดขีด จำกัด จัดการ
ดังนั้น เราจะจัดการกับขีดจำกัดที่นี่ และเราจะส่งเคอร์เซอร์ไป ซึ่งก็คือเคอร์เซอร์ที่จะกระตุ้นความสนใจหรือดูข้อมูลทั้งหมดของผู้ติดตาม
API อีกครั้ง
และเรากำลังจะทำวนซ้ำที่บอกว่าสิ่งนี้เป็นจริง
แค่ยอมจำนนต่อไป
เคอร์เซอร์.
จุดต่อไป
เพราะเคอร์เซอร์เป็นตัวสร้าง
อย่างไรก็ตาม เมื่อใดก็ตามที่เราโทรต่อไปที่นี่ ซึ่งจริงๆ แล้ว นี่คือสิ่งที่เคอร์เซอร์ทำเป็นการภายใน
เป็นเพียงแค่การโทรต่อไปอย่างต่อเนื่องและดำเนินต่อไป
ก้าวต่อไปจนกว่าเราจะเสร็จสิ้นผู้ติดตามของเรา
อย่างไรก็ตาม.
หากไม่เป็นเช่นนั้น
ในกรณีนั้นฉันจะพูด
ยกเว้น.
และเราจะห่อนี่ในบล็อกสามอัน จริงๆ แล้ว
ฉันจะบอกว่าลองที่นี่เพื่อที่เราจะได้จับข้อผิดพลาดนี้
ดังนั้นลองในขณะที่เป็นจริง
แล้ว.
ยกเว้น.
หากเราได้รับข้อผิดพลาดขีด จำกัด อัตรากาน้ำชา
ในกรณีนั้น ฉันต้องการหยุดชั่วคราวและไม่ได้แตะ Twitter API เพื่อไม่ให้เกิดปัญหาและกลับมาดูอีกครั้งเมื่อเราได้ให้เวลากับมันแล้ว
ดังนั้นเราจึงสามารถทำได้ด้วยโมดูลในตัวใน Python ที่เรียกว่าเวลาและเวลาช่วยให้เราสามารถทำสิ่งที่มีประโยชน์จริงๆที่นี่
ฉันสามารถทำสิ่งที่เรียกว่าสลีปได้ ซึ่งโดยพื้นฐานแล้วจะบอกว่า เฮ้ หยุดนี่ซะ ไม่ว่าจะเกิดอะไรขึ้น
แค่อยู่ในบรรทัดนี้สักสองสามมิลลิวินาที
ดังนั้นถ้าเราทำ 1,000 นั่นคือ 1,000 มิลลิวินาทีหรือ 1/2
ตอนนี้เรามีลิมิตแฮนเดิลหรือเรียกมันว่าลิมิตแฮนเดิลก็ได้
และถ้าเราห่อตัวจัดการจำกัด ซึ่งได้รับเคอร์เซอร์ เราก็ตัดสิ่งนี้ทั้งหมด
เช่นนั้น
มาทำให้มันใหญ่ขึ้นอีกหน่อย
ไปเลย
ตอนนี้เราไม่สามารถละเมิดได้ และทำให้แน่ใจว่าหากเราโจมตีถึงขีดจำกัด เราจะหยุดชั่วคราวแทนที่จะได้รับข้อผิดพลาด
ลองดูว่าได้ผลหรือไม่
ฉันจะประหยัด
และเรียกใช้โค้ดของเรา
ให้ชัดเจนที่นี่และเรียกใช้สิ่งนี้
ไม่เป็นไร.
ง. ค. ตอนนี้มันหยุดยังไง
ทันทีที่เราถึงขีดจำกัดอัตรา จะหยุดชั่วคราว
และมันก็ดำเนินต่อไป
และที่นั่นคุณไป
กำลังพิมพ์ผู้ติดตามทั้งหมดที่ฉันมี
ที่สวยเย็นใช่มั้ย?
ตอนนี้ฉันจะหยุดสิ่งนี้จริงๆ เพราะมันยังคงผ่านมันไปได้
แต่สิ่งที่เราสามารถทำได้ในตอนนี้คือ เราสามารถติดตามบุคคลเหล่านี้ได้จริงๆ
ในกรณีของฉัน ฉันไม่ได้เล่น Twitter มากนัก ดังนั้นเรามาสุ่มตามใครสักคนที่นี่
มาติดตามผู้ใช้รายนี้ได้ที่นี่
ฉันจะคัดลอกชื่อผู้ใช้นี้ และฉันจะทำสิ่งที่สนุกที่นี่
ฉันจะบอกว่าถ้า
ชื่อจุดผู้ติดตามเท่ากับบุคคลนี้
ในกรณีนี้ ฉันต้องการติดตามบุคคลนี้
ดังนั้นฉันจะพูด
ติดตามจุดของเธอ
ติดตามซึ่งทำให้ฉันสามารถติดตามผู้ใช้ได้
ถ้าฉันบันทึกสิ่งนี้และเรียกใช้รหัสของฉัน มันกำลังทำงานอยู่
มันวิ่ง มันวิ่ง
อย่างที่ฉันพูด มันต้องใช้เวลาสักหน่อยเพราะต้องผ่านรายการทั้งหมด
แต่ฉันจะหยุดวิดีโอชั่วคราว และเมื่อเสร็จแล้ว เราจะดูว่าวิธีนี้ใช้ได้หรือไม่