YayCrawler ระบบรวบรวมข้อมูลแบบกระจาย ใช้งานง่าย การกำหนดค่าขั้นสูง สามารถขยายได้ ลดภาระงานในการพัฒนา สามารถเชื่อมต่อ และปรับให้เข้ากับความต้องการเร่งด่วนต่างๆ ได้: WebMagic, Spring Boot, MongoDB, ActiveMQ, Spring + Quartz, Spring Jpa, Druid, Redis, Ehcache, SLF4J, Log4j2, Bootstrap + เจคิวรี่ ฯลฯ
เพิ่มประสิทธิภาพการทำงานของนักพัฒนาโปรแกรมรวบรวมข้อมูลเว็บให้สูงสุด ซึ่งถือเป็นการสูดอากาศบริสุทธิ์ในกรอบงานโปรแกรมรวบรวมข้อมูล
เฟรมเวิร์กซอฟต์แวร์รวบรวมข้อมูลแบบกระจายที่สมบูรณ์ซึ่งพัฒนาบน WebMagic ลักษณะของเฟรมเวิร์กนี้มีดังนี้:
1. กระจายโดยสมบูรณ์: ประกอบด้วยเทอร์มินัลการจัดการ (ผู้ดูแลระบบ) เทอร์มินัลการจัดส่ง (หลัก) และพนักงานหลายคนสื่อสารผ่านโปรโตคอล HTTP
2. กำหนดค่าได้อย่างสมบูรณ์: ข้อมูลจากเว็บไซต์ใดๆ สามารถรวบรวมข้อมูลผ่านกฎการกำหนดค่าเพจทางฝั่งผู้ดูแลระบบ แน่นอนว่าความยากของเว็บไซต์ต่างๆ นั้นแตกต่างกัน และจะมีองค์ประกอบที่แตกต่างกันในการจัดการปัญหา เช่น การเข้าสู่ระบบ รหัสยืนยัน IP การปิดกั้น ฯลฯ
3. คิวงานที่ปรับขนาดได้: Redis ใช้งานคิวงานที่แตกต่างกันสี่คิวตามสถานะของงาน: เริ่มต้น กำลังดำเนินการ สำเร็จ และล้มเหลว คุณยังสามารถขยายอัลกอริธึมการจัดกำหนดการงานต่างๆ ได้ โดยค่าเริ่มต้นคือการจัดกำหนดการที่ยุติธรรม
4. วิธีการคงอยู่ที่กำหนดได้: ในผลลัพธ์การรวบรวมข้อมูล ข้อมูลแอตทริบิวต์จะคงอยู่ใน MonogoDB ตามค่าเริ่มต้น และรูปภาพจะถูกดาวน์โหลดไปยังไฟล์เซิร์ฟเวอร์ แน่นอนว่าคุณสามารถขยายประเภทพื้นที่เก็บข้อมูลได้มากขึ้น
5. ความเสถียรและความทนทานต่อข้อผิดพลาด: งานรวบรวมข้อมูลใดๆ จะถูกลองใหม่และบันทึกเฉพาะเมื่องานสำเร็จอย่างแท้จริงเท่านั้นที่จะถูกย้ายไปยังคิวความสำเร็จ
กรอบงานหลัก: การบูต Webmagic Spring
การจัดกำหนดการงาน: ฤดูใบไม้ผลิ + ควอตซ์
กรอบงานเลเยอร์คงอยู่: Spring Jpa
ฐานข้อมูลและกลุ่มการเชื่อมต่อ: Alibaba Druid MongoDB MySql
กรอบงานแคช: Redis Ehcache
การจัดการบันทึก: SLF4J, Log4j2
เฟรมเวิร์กส่วนหน้า: Bootstrap + Jquary
1.ติดตั้ง JDK8
2. ติดตั้งฐานข้อมูล mysql เพื่อจัดเก็บข้อมูล เช่น กฎการแยกวิเคราะห์ คุณต้องสร้างอินสแตนซ์ฐานข้อมูลของ "yayCrawler" และรันสคริปต์ฐานข้อมูลที่เกี่ยวข้องกับควอตซ์: quartz.sql (ดูแพ็คเกจการเปิดตัวหรือซอร์สโค้ด)
3.ติดตั้ง Redis
4. ติดตั้ง mongoDB เพื่อเก็บข้อมูลผลลัพธ์
5. ติดตั้งซอฟต์แวร์เซิร์ฟเวอร์ ftp ftpserver (เป็นทางเลือก ใช้เพื่อจัดเก็บภาพที่ดาวน์โหลด)
นำเข้าโปรเจ็กต์ ติดตั้ง maven เพื่อติดตั้งโมดูลผู้ดูแลระบบ ผู้ปฏิบัติงาน และต้นแบบ จากนั้นคัดลอก Jar ที่สร้างขึ้นไปยังไดเร็กทอรี crawler.worker/deploy อย่าลืมเปลี่ยน IP ของ Redis และ mysql mogodb ในไฟล์คอนฟิกูเรชัน แล้วคลิก start.bat เพื่อเริ่มต้น
(Linux และ Windows) java -jar worker.war --spring.config.location=worker_local.properties
คำสั่งปิด
(Windows) สำหรับ /f "tokens=1-5 delims= " %%a in ('"netstat -ano|findstr "^:8086""') do taskkill /f /pid %%e
1. ผู้ดูแลระบบ ชั้นผู้ดูแลระบบมีหน้าที่หลักในการกำหนดค่ากฎการแยกหน้า การกำหนดค่าไซต์หน้า การจัดการทรัพยากร และการปล่อยงาน
2. Master เป็นศูนย์ควบคุมของโปรแกรมรวบรวมข้อมูลแบบกระจาย โดยยอมรับงานที่เผยแพร่โดยผู้ดูแลระบบและมอบหมายงานให้กับผู้ปฏิบัติงานเพื่อดำเนินการ
2.1. รับงานเผยแพร่
2.2. ยอมรับการลงทะเบียนคนงาน
3. คนงานเป็นชายหนุ่มที่ทำงานหนักและทำสิ่งต่าง ๆ อย่างแท้จริง เขายอมรับและปฏิบัติงานที่ได้รับมอบหมายจากอาจารย์ และรายงานการเต้นของหัวใจของเขาให้อาจารย์ทราบเป็นประจำ