การค้นหาไซต์เวอร์ชันง่ายๆ
ขึ้นอยู่กับเครื่องมือค้นหาข่าวของมหาวิทยาลัย
- แนวคิดการใช้งาน: รวบรวมข้อมูลข่าวทั้งหมดจากเครือข่ายมหาวิทยาลัยจัดเก็บไว้ในฐานข้อมูล MySQL จากนั้นแบ่งชื่อในฐานข้อมูลแล้วเปลี่ยนผลลัพธ์การแบ่งส่วนคำเป็นตารางดัชนี ป้อนเนื้อหาแบบสอบถามแบ่งส่วนเนื้อหาแบบสอบถามจับคู่รายการการแบ่งส่วนคำในฐานข้อมูลแมป URL ที่เกี่ยวข้องแล้วส่งคืนผลลัพธ์
สภาพแวดล้อมการพัฒนา
ห้องสมุดการพึ่งพา
- pymysql: อินเทอร์เฟซระหว่าง Python และ MySQL
- Jieba: Library Python สำหรับคำนาม
สถาปัตยกรรมโดยรวม
ซอฟต์แวร์รวบรวมข้อมูลบางคนใช้กรอบการทำลายล้างเพื่อรวบรวมข้อมูลเครือข่ายข่าวของมหาวิทยาลัยวิศวกรรมและเทคโนโลยี Liaoning คำอธิบายของส่วนหลักของกรอบการทำลาย:
- Intuspider.py File: กระบวนการสกัดหลักของข้อมูลหน้าเว็บโดยใช้การโทรแบบวนซ้ำโดยใช้อัลกอริธึมที่ลึกซึ้งในการโทรแบบเรียกซ้ำการแยกวิเคราะห์หน้า HTML ทั้งหมดของ Liaoning University of Technology วิธีการแยกวิเคราะห์ที่ใช้โดยเครื่องรวบรวมข้อมูลคือ xpath
- items.py กำหนดวัตถุที่จะคลาน
- pipeline.py เก็บวัตถุที่บันทึกไว้ในฐานข้อมูล MySQL ผ่านอินเตอร์เฟส MySQL ไฟล์อื่น ๆ เป็นไฟล์การกำหนดค่าบางส่วนและแทบจะไม่มีการเปลี่ยนแปลงและตำแหน่งของการเปลี่ยนแปลงได้รับการแสดงความคิดเห็น ส่วนตัวรวบรวมข้อมูลสิ้นสุดลงที่นี่
แนวคิดโดยรวมของเครื่องมือค้นหา: อนุภาคชื่อที่เก็บไว้ในฐานข้อมูลและสร้างดัชนีคำหลัก ประการที่สองขึ้นอยู่กับความถี่ของคำหลักตารางดัชนีของคำหลักและเหตุการณ์จะถูกสร้างขึ้น คำอธิบายเอกสารหลัก:
- intu.py: การสร้างตารางฐานข้อมูลนำข้อมูลที่รวบรวมข้อมูลโดยตัวรวบรวมข้อมูลทำการแบ่งส่วนคำและจัดเก็บไว้ในตารางไปข้างหน้าและย้อนกลับตามลำดับ
- Forward.py: Forward Table, กำหนดองค์ประกอบคลาสไปข้างหน้า
forwardIndexTableItem , ระบุเนื้อหาอาร์เรย์ในตารางและในตารางการส่งต่อคลาสไปข้างหน้า forwardIndexTable ชื่ออนุภาคจะดำเนินการและเก็บไว้ในตารางฐานข้อมูล - พจนานุกรม: การแบ่งส่วนคำ, กำหนดการดำเนินการ: รับ ID ผ่านคำ, รับคำผ่าน id, สร้างรายการการแบ่งส่วนคำและรายการการแบ่งส่วนคำโหลด;
- BackwardList: ตารางย้อนหลังการประมวลผลข้อมูลในตารางไปข้างหน้า
- LinesEngine: คลาส Search Engine เรียกใช้ไฟล์นี้โดยตรงคุณสามารถส่งคืนชื่อและ URL ที่เกี่ยวข้องโดยการสอบถามคำที่คุณป้อน แกนกลางคือการแบ่งส่วนเนื้อหาอินพุตจากนั้นเรียงลำดับชื่อที่เกี่ยวข้องตามคำหลักแล้วพิมพ์ 10 บรรทัดแรกตามจำนวนคำสำคัญ
หมายเหตุและข้อบกพร่อง:
- ก่อนอื่นตัวรวบรวมข้อมูลเป็นแบบคงที่ หากมีชื่อซ้ำในฐานข้อมูลการแทรกข้อมูลจะล้มเหลว ตารางจะต้องมีการล้างและคลานอีกครั้ง
- เนื้อหาฐานข้อมูลได้รับการแก้ไข
- อัตราการเข้าชมของการค้นหานั้นเกี่ยวข้องกับความถูกต้องของการพูดติดอ่าง เมื่อคลานเค้าโครงของหน้าเว็บมีความชัดเจนมากและข่าวที่ฉันคลานไม่ได้ทำซ้ำ
- ในอนาคตคุณสามารถเพิ่มเว็บเพจค้นหาผ่านเว็บไซต์และสร้างเว็บอินเตอร์เฟส
- ตัวรวบรวมข้อมูลและการค้นหามีความเป็นอิสระและเครือข่ายข่าวอื่น ๆ ก็สามารถรวบรวมข้อมูลได้เพียงแค่ต้องการชิ้นส่วนรวบรวมข้อมูล
วิธีใช้
- การเตรียมสภาพแวดล้อมการพึ่งพา: สภาพแวดล้อม Python3, เฟรมเวิร์กการทำลาย, การติดตั้ง Pymysql, การติดตั้งไลบรารี Jieba Word, การติดตั้ง MySQL, ฐานข้อมูล MySQL สร้างฐานข้อมูล MyTable และตารางข้อมูล INTU
- git clone แรกไปยังไดเรกทอรีที่ระบุ
-
scrapy crawl Intu คอนโทรล - รอผลการคลานและการคลานสิ้นสุดลง
- เรียกใช้ไฟล์ seachengine.py และป้อนเนื้อหาข้อความที่คุณสอบถาม