نظرًا لأن مشروع الدورة التدريبية يتطلب استخدام زاحف CNKI، فقد وجدت مستودع تنزيل CNKI الخاص بـ CyrusRenty بعد البحث على GitHub، ولكن بعد استنساخه، وجدت أنه غير قابل للاستخدام، لذلك قمت بتعديله باستثناء تنزيل المستندات ووظائف رمز التحقق. بقية الاختبار الوظيفي متاح.
نظرًا لأن الوصول إلى شبكة الحرم الجامعي فقط لا يمكن أن يجعل Zhiwang يتعرف على المدرسة (يحتاج إلى المرور عبر VPN لمدرسة أخرى)، لا يمكنني استخدام o(╥﹏╥)o لتنزيل وظيفة المستند، لذلك لا يمكنني تعديلها. لم أواجه رموز التحقق. إن محاولة التأكد من وجود فاصل زمني كافٍ عند الزحف إلى كل صفحة يجب أن يكون قادرًا على تجنب هذه المشكلة.
ملاحظة: بالنسبة لمشكلات مثل NonType، فقد تجاهلتها باستخدام محاولة التقاط خام، لذلك، إذا رأيت أنه لا توجد بيانات في صف معين من Excel في صف Excel بعد اكتمال الزحف، فما عليك سوى حذفها كضوضاء ~ إذا. أنت بحاجة ماسة إلى جميع الحقول الكاملة، قم بتقديم مشكلة وسأرى ما إذا كان بإمكاني المساعدة.
ملاحظة: في بعض الأحيان قد يتم الإبلاغ عن الخطأ التالي عند تشغيل الزاحف:
في هذه الحالة، يرجى إيقاف تشغيل الوكيل العالمي VPN، وإدخال عنوان CNKI في المتصفح لمعرفة ما إذا كان بإمكانك الدخول بشكل طبيعي، ثم حاول تشغيل البرنامج مرارًا وتكرارًا.
إذا كانت لديك أي أسئلة حول هذا المشروع، يمكنك إثارة المشكلة مباشرة، وآمل أن أتمكن من مساعدتك بأفضل ما أستطيع! إذا كان لديك كود أفضل لدمجه، فإن Feichang يرحب بالعلاقات العامة!
المحتوى التالي مأخوذ من المؤلف الأصلي، وأشيد بالمؤلف الأصلي ∠(°ゝ°)
المشروع عبارة عن زاحف تم تنفيذه استنادًا إلى Python3 للزحف إلى بيانات CNKI ويمكن البحث فيه وفقًا للبحث المتقدم CNKI ويوفر وظائف الزحف إلى المعلومات التفصيلية مثل معلومات المستند الأساسية وتنزيلات المستندات وملخصات المستندات.
يمكن الاطلاع على عملية التنفيذ على مدونتي
يعمل البرنامج على النحو التالي:
المعلومات التفصيلية لجدول Excel هي كما يلي:
تحميل كاج على النحو التالي:
إن التقاط البيانات عن طريق إرسال حزم التحليل له أداء أعلى قليلاً من استخدام السيلينيوم والطرق الأخرى.
يمكنك استخدام وظيفة البحث المتقدم في CNKI للبحث عن المستندات واسترجاعها بشكل أكثر كفاءة.
يمكن تشغيل وظيفة التقاط المعلومات التفصيلية وتنزيل مستندات CJ بشكل انتقائي وفقًا لحالة مكافحة الزاحف للشبكة وCNKI.
استخدم جداول Excel لعرض ملخصات الأدبيات المطلوبة والمعلومات الأخرى بسرعة، ويمكنك التنزيل بشكل انتقائي وفقًا لروابط التنزيل المقدمة من Excel لمنع الزحف العكسي إلى شبكة CNKI بسبب التنزيل الزائد.
يتم استخدام
tesserocr
في جزء معالجة رمز التحقق، لكن تأثير التحقق ليس جيدًا جدًا في الوقت الحالي، لذلك يتم تمكين التحديد اليدوي لرموز التحقق بشكل افتراضي.إذا لم يتم تثبيت
tesseract
محليًا، فيمكنك تثبيته أولاً ثم تنفيذpip install tesserocr
. أو قم بالتعليق على الأسطر 15 و63 و64 من ملفCrackVerifyCode.py
ثم قم بتنفيذ أمر التثبيت.
تثبيت النقطة -r متطلبات.txt
# Config.ini هو ملف تكوين المشروع # 0 مغلق 1 مفتوح isDownloadFile = 1 # ما إذا كان سيتم تنزيل الملف isCrackCode=0 # ما إذا كان سيتم التعرف على رمز التحقق تلقائيًا isDetailPage=0 # ما إذا كان سيتم حفظ تفاصيل المستند إلى excelisDownLoadLink # سواء لحفظ رابط التنزيل في برنامج Excel stepWaitTime=5 # إيقاف مؤقت لكل صفحة تفاصيل التنزيل والزحف
يوصى بعدم فتح صفحات تفاصيل التنزيل والزحف في نفس الوقت، ويجب ألا تقل مدة الإيقاف المؤقت عن 3 ثوانٍ.
بيثون تشغيل العنكبوت.py
بعد الانتهاء من تشغيل الزاحف، سيتم حفظ جميع البيانات في مجلد البيانات، وسيتم حذف مجلد البيانات القديم تلقائيًا في كل مرة يتم فيها إعادة تشغيل البرنامج.
CNKI_download -- data 存放所有爬取数据 -- CAJs 存放所有下载的caj原文 -- xxxxxxx.caj -- xxxxxxx.caj -- Links.txt 所有爬取文献的下载链接 -- ReferenceList.txt 爬取文献简要信息 -- Reference_detail.xls 文献详细信息excel表
فرضية تشغيل المشروع هي أن الكمبيوتر يمكنه الوصول إلى CNKI من خلال IP وتنزيله (اشترت معظم المدارس قواعد البيانات). عندما كنت على وشك الانتهاء من الكتابة، وجدت أنه لا تزال هناك واجهة انتقال، وسيظل الوصول إلى الشبكة العامة متاحًا يمكن إضافتها في المستقبل.
إذا ظهرت عبارة "تم رفض الوصول من قبل المضيف البعيد"، فيمكنك إطالة وقت الإيقاف المؤقت لكل جلسة بشكل مناسب.
إذا قمت بتشغيله مرة واحدة، تذكر إغلاق جميع الملفات الموجودة في مجلد البيانات قبل تشغيله مرة أخرى، وإلا فقد يتم الإبلاغ عن خطأ لأنه لا يمكن حذف مجلد البيانات.
إذا قمت بالزحف إلى المعلومات فقط دون تنزيلها، فقد تتمكن من إدخال رمز التحقق بشكل متكرر (حتى إذا تم إدخاله بشكل صحيح) بعد تشغيل حوالي 1000 مستند. ولم يعرف بعد ما هو السبب
أكمل الوظائف الأخرى غير المنفذة لعمليات البحث المتقدمة.
أضف معلومات صفحة بدء الزحف المحددة للزحف مرة أخرى من الخطأ الأخير.
أضف انتقالًا للشبكة العامة إلى واجهة CNKI للتأكد من أن المستخدمين الذين لا يستطيعون تسجيل الدخول عبر IP لا يزال بإمكانهم استخدام هذا الزاحف.
قم بإنشاء تجمع وكيل لتنفيذ وصول وكيل IP استنادًا إلى قفزات الشبكة العامة، مما يقلل عدد عناوين IP المحظورة بواسطة CNKI وعدد مدخلات رمز التحقق.
كتابة سجلات عملية تنفيذ البرنامج وتحليله.