เนื่องจากโครงการหลักสูตรต้องใช้โปรแกรมรวบรวมข้อมูล CNKI ฉันจึงพบคลังดาวน์โหลด CNKI ของ CyrusRenty หลังจากค้นหาบน GitHub แต่หลังจากการโคลน ฉันพบว่าไม่สามารถใช้งานได้ ดังนั้นฉันจึงแก้ไข ยกเว้นการดาวน์โหลดเอกสารและฟังก์ชันรหัสยืนยัน ส่วนที่เหลือมีการทดสอบการทำงาน
เนื่องจากการเข้าถึงเครือข่ายวิทยาเขตเท่านั้นไม่สามารถทำให้ Zhiwang ระบุโรงเรียนได้ (จำเป็นต้องผ่าน VPN ของโรงเรียนอื่น) ฉันจึงไม่สามารถใช้ o(╥﹏╥)o เพื่อดาวน์โหลดฟังก์ชันเอกสาร ดังนั้นฉันจึงไม่สามารถแก้ไขได้ ฉันไม่พบรหัสยืนยัน การพยายามให้มีช่วงเวลาที่เพียงพอเมื่อรวบรวมข้อมูลแต่ละหน้าควรจะสามารถหลีกเลี่ยงปัญหานี้ได้
PS: สำหรับปัญหาเช่น NoneType ฉันเพิกเฉยต่อสิ่งเหล่านั้นด้วยการลองจับแบบหยาบ ดังนั้น หากคุณเห็นว่าไม่มีข้อมูลในแถวหนึ่งของ Excel ในแถว Excel หลังจากการรวบรวมข้อมูลเสร็จสิ้น ให้ลบออกเป็นการรบกวน ~ ถ้า คุณต้องการฟิลด์ที่ครบถ้วนทั้งหมดอย่างเร่งด่วน โปรดแจ้งปัญหา แล้วเราจะดูว่าสามารถช่วยได้หรือไม่
PS: บางครั้งข้อผิดพลาดต่อไปนี้อาจถูกรายงานเมื่อเรียกใช้โปรแกรมรวบรวมข้อมูล:
ในกรณีนี้ โปรดปิด VPN พร็อกซีส่วนกลาง ป้อนที่อยู่ CNKI ในเบราว์เซอร์เพื่อดูว่าคุณสามารถเข้าได้ตามปกติหรือไม่ จากนั้นลองเรียกใช้โปรแกรมซ้ำแล้วซ้ำอีก
หากคุณมีคำถามใดๆ เกี่ยวกับโครงการนี้ คุณสามารถแจ้งปัญหาได้โดยตรง ฉันหวังว่าฉันจะช่วยคุณอย่างสุดความสามารถ! หากคุณมีโค้ดที่ดีกว่าในการรวม Feichang ยินดีรับ PR!
เนื้อหาต่อไปนี้นำมาจากผู้เขียนต้นฉบับ และฉันขอแสดงความเคารพต่อผู้เขียนต้นฉบับ∠(°ゝ°)
โปรเจ็กต์นี้เป็นโปรแกรมรวบรวมข้อมูลที่ใช้ Python3 เพื่อรวบรวมข้อมูล CNKI สามารถค้นหาได้ตามการค้นหาขั้นสูงของ CNKI และให้ฟังก์ชันการรวบรวมข้อมูลโดยละเอียด เช่น ข้อมูลเอกสารพื้นฐาน การดาวน์โหลดเอกสาร และบทคัดย่อเอกสาร
สามารถดูขั้นตอนการดำเนินการได้ในบล็อกของฉัน
โปรแกรมทำงานดังนี้:
ข้อมูลรายละเอียดตาราง Excel มีดังนี้:
ดาวน์โหลด caj ดังนี้:
การจับข้อมูลโดยการส่งแพ็กเก็ตแยกวิเคราะห์จะมีประสิทธิภาพสูงกว่าการใช้ซีลีเนียมและวิธีการอื่นๆ เล็กน้อย
คุณสามารถใช้ฟังก์ชันการค้นหาขั้นสูงของ CNKI เพื่อค้นหาและเรียกค้นเอกสารได้อย่างมีประสิทธิภาพมากขึ้น
ฟังก์ชั่นการรวบรวมข้อมูลโดยละเอียดและการดาวน์โหลดเอกสาร Caj สามารถเลือกเปิดได้ตามสถานการณ์การต่อต้านการรวบรวมข้อมูลของเครือข่ายและ CNKI
ใช้ตาราง Excel เพื่อดูบทคัดย่อวรรณกรรมที่จำเป็นและข้อมูลอื่นๆ ได้อย่างรวดเร็ว คุณสามารถเลือกดาวน์โหลดได้ตามลิงก์ดาวน์โหลดที่ Excel เตรียมไว้ให้ เพื่อป้องกันไม่ให้เครือข่าย CNKI ถูกรวบรวมข้อมูลแบบย้อนกลับเนื่องจากมีการดาวน์โหลดมากเกินไป
tesserocr
ใช้ในส่วนการประมวลผลรหัสยืนยัน แต่ผลการตรวจสอบยังไม่ดีนักในปัจจุบัน ดังนั้นการระบุรหัสยืนยันด้วยตนเองจึงเปิดใช้งานตามค่าเริ่มต้นหากไม่ได้ติดตั้ง
tesseract
ในเครื่อง คุณสามารถติดตั้งก่อนแล้วจึงดำเนินการpip install tesserocr
หรือใส่เครื่องหมายความคิดเห็นบรรทัดที่ 15, 63 และ 64 ของไฟล์CrackVerifyCode.py
จากนั้นดำเนินการคำสั่งการติดตั้ง
pip ติดตั้ง -r ข้อกำหนด.txt
# Config.ini เป็นไฟล์การกำหนดค่าโครงการ # 0 ถูกปิด 1 เปิดอยู่ isDownloadFile = 1 # ไม่ว่าจะดาวน์โหลดไฟล์ isCrackCode=0 # จะจดจำรหัสยืนยันโดยอัตโนมัติหรือไม่ isDetailPage=0 # จะบันทึกรายละเอียดเอกสารไปยัง excelisDownLoadLink หรือไม่ # ไม่ว่าจะ เพื่อบันทึกลิงก์ดาวน์โหลดใน excel stepWaitTime=5 # เวลาหยุดชั่วคราวสำหรับหน้ารายละเอียดการดาวน์โหลดและการรวบรวมข้อมูลแต่ละหน้า
ขอแนะนำว่าอย่าเปิดหน้ารายละเอียดการดาวน์โหลดและการรวบรวมข้อมูลพร้อมกัน และเวลาหยุดชั่วคราวไม่ควรน้อยกว่า 3 วินาที
หลามรัน-spider.py
หลังจากที่โปรแกรมรวบรวมข้อมูลทำงานเสร็จแล้ว ข้อมูลทั้งหมดจะถูกบันทึกไว้ในโฟลเดอร์ข้อมูล โฟลเดอร์ข้อมูลเก่าจะถูกลบโดยอัตโนมัติทุกครั้งที่เรียกใช้โปรแกรมอีกครั้ง
CNKI_download -- data 存放所有爬取数据 -- CAJs 存放所有下载的caj原文 -- xxxxxxx.caj -- xxxxxxx.caj -- Links.txt 所有爬取文献的下载链接 -- ReferenceList.txt 爬取文献简要信息 -- Reference_detail.xls 文献详细信息excel表
หลักฐานสำหรับโครงการที่จะดำเนินการคือคอมพิวเตอร์สามารถเข้าถึง CNKI ผ่าน IP และดาวน์โหลดได้ (โรงเรียนส่วนใหญ่ซื้อฐานข้อมูล) เมื่อฉันกำลังจะเขียนเสร็จ ฉันพบว่ายังมีอินเทอร์เฟซแบบข้ามและการเข้าถึงเครือข่ายสาธารณะจะดำเนินต่อไป จะเพิ่มเข้ามาในอนาคต
หาก "การเข้าถึงถูกปฏิเสธโดยโฮสต์ระยะไกล" ปรากฏขึ้น คุณสามารถยืดเวลาหยุดชั่วคราวสำหรับแต่ละเซสชันให้ยาวขึ้นได้อย่างเหมาะสม
หากคุณเรียกใช้งานครั้งหนึ่ง อย่าลืมปิดไฟล์ทั้งหมดในโฟลเดอร์ข้อมูลก่อนที่จะเรียกใช้อีกครั้ง มิฉะนั้นอาจมีการรายงานข้อผิดพลาดเนื่องจากไม่สามารถลบโฟลเดอร์ข้อมูลได้
หากคุณรวบรวมข้อมูลโดยไม่ดาวน์โหลด คุณอาจป้อนรหัสยืนยันซ้ำๆ (แม้ว่าจะป้อนอย่างถูกต้องก็ตาม) หลังจากเรียกใช้เอกสารประมาณ 1,000 ฉบับ ยังไม่ทราบว่าเป็นเพราะอะไร
ใช้งานฟังก์ชันอื่นๆ ที่ยังไม่ได้ใช้งานให้สมบูรณ์สำหรับการค้นหาขั้นสูง
เพิ่มข้อมูลหน้าเริ่มต้นการรวบรวมข้อมูลที่ระบุเพื่อรวบรวมข้อมูลอีกครั้งจากข้อผิดพลาดครั้งล่าสุด
เพิ่มการข้ามเครือข่ายสาธารณะไปยังอินเทอร์เฟซ CNKI เพื่อให้แน่ใจว่าผู้ใช้ที่ไม่สามารถเข้าสู่ระบบผ่าน IP จะยังสามารถใช้โปรแกรมรวบรวมข้อมูลนี้ได้
สร้างพร็อกซีพูลเพื่อใช้การเข้าถึง IP พร็อกซีตามการข้ามเครือข่ายสาธารณะ ช่วยลดจำนวนที่อยู่ IP ที่ถูกบล็อกโดย CNKI และจำนวนอินพุตรหัสยืนยัน
เขียนบันทึกการใช้งานโปรแกรมและกระบวนการวิเคราะห์