เรามาเริ่มกันที่เรื่องเดิมกันเลยดีกว่าครับ เรามาพูดถึง แนวคิดในการทำโปรแกรมรวบรวมข้อมูลและความรู้ที่ต้องเตรียมกันนะครับ
ขั้นแรก ลองคิดถึงสิ่งที่เราต้องการทำและระบุข้อกำหนดง่ายๆ บางประการ
ข้อกำหนดมีดังนี้:
1. จำลองการเข้าถึงเว็บไซต์อย่างเป็นทางการของ Zhihu (http://www.zhihu.com/)
2. ดาวน์โหลดเนื้อหาของหน้าที่ระบุ รวมถึง: ที่มาแรงที่สุดของวันนี้, ร้อนแรงที่สุดของเดือนนี้ และคำแนะนำจากบรรณาธิการ
3. ดาวน์โหลดคำถามและคำตอบทั้งหมดตามหมวดหมู่ที่กำหนด เช่น การลงทุน การเขียนโปรแกรม หลักสูตรที่ล้มเหลว
4. ดาวน์โหลดคำตอบทั้งหมดจากผู้ตอบที่ระบุ
5. วิธีที่ดีที่สุดคือมีฟังก์ชันแบบคลิกเดียวในทางที่ผิด (เพื่อที่ฉันจะได้ชอบคำตอบทั้งหมดของ Laylen ในคราวเดียว ฉันฉลาดมาก!)
จากนั้นปัญหาทางเทคนิคที่ต้องแก้ไขจะแสดงรายการโดยย่อดังนี้:
1. จำลองการเข้าถึงเว็บเพจของเบราว์เซอร์
2. เก็บข้อมูลสำคัญและบันทึกไว้ในเครื่อง
3. แก้ไขปัญหาการโหลดแบบไดนามิกในการท่องเว็บ
4. ใช้โครงสร้างแบบต้นไม้เพื่อรวบรวมข้อมูลเนื้อหาทั้งหมดบน Zhihu อย่างหนาแน่น
โอเค นั่นคือทั้งหมดที่ฉันกำลังคิดอยู่ตอนนี้
ขั้นตอนต่อไปคือการเตรียมการ
1. กำหนดภาษาของโปรแกรมรวบรวมข้อมูล: เนื่องจากฉันได้เขียนชุดบทช่วยสอนโปรแกรมรวบรวมข้อมูลมาก่อนแล้ว (คลิกที่นี่), Baidu Tieba, Encyclopedia of Embarrassing Things, คำถามเกรดของมหาวิทยาลัยซานตง ฯลฯ ล้วนเขียนด้วยภาษาไพธอน ดังนั้นฉันจึงตัดสินใจใช้ Java มาเขียนคราวนี้ (ฟีดให้หมด ถ้าไม่มีครึ่งสลึงทำไมไม่ติดต่อมาล่ะ?)
2. ความรู้เกี่ยวกับโปรแกรมรวบรวมข้อมูลวิทยาศาสตร์ยอดนิยม Web crawler หรือ Web Spider เป็นชื่อที่ชัดเจนมาก หากเปรียบเทียบอินเทอร์เน็ตกับใยแมงมุม แมงมุมก็คือแมงมุมที่คลานไปมาบนเว็บ เว็บสไปเดอร์ค้นหาหน้าเว็บผ่านที่อยู่ลิงก์ สำหรับการแนะนำโดยละเอียด โปรดคลิกที่นี่
3. เตรียมสภาพแวดล้อมของโปรแกรมรวบรวมข้อมูล: ฉันจะไม่ลงรายละเอียดเกี่ยวกับการติดตั้งและการกำหนดค่าของ Jdk และ Eclipse ที่นี่ เบราว์เซอร์ที่ดีมีความสำคัญมากสำหรับโปรแกรมรวบรวมข้อมูล เพราะก่อนอื่นคุณต้องเรียกดูเว็บเพื่อทราบว่าสิ่งที่คุณต้องการอยู่ที่ไหน จากนั้นคุณเท่านั้นที่จะบอกโปรแกรมรวบรวมข้อมูลได้ว่าจะไปที่ไหนและจะรวบรวมข้อมูลอย่างไร โดยส่วนตัวแล้วฉันแนะนำ Firefox หรือ Google Chrome ฟังก์ชั่นการคลิกขวาเพื่อตรวจสอบองค์ประกอบและการดูซอร์สโค้ดนั้นมีประสิทธิภาพมาก
ตอนนี้เราเริ่มต้นการเดินทางของซอฟต์แวร์รวบรวมข้อมูลอย่างเป็นทางการแล้ว! ~ฉันควรจะพูดถึงอะไรเป็นพิเศษ นี่คือคำถาม ฉันขอคิดดูก่อนแล้วกัน^_^