نسخة بسيطة من البحث عن الموقع
بناءً على محرك البحث الأخبار في الحرم الجامعي
- فكرة التنفيذ: قم بالزحف إلى جميع الأخبار من شبكة الحرم الجامعي ، وقم بتخزينها في قاعدة بيانات MySQL ، ثم تقسيم العناوين في قاعدة البيانات ، ثم تحويل نتائج تجزئة الكلمات إلى جدول فهرس. أدخل محتوى الاستعلام ، وقسم محتوى الاستعلام ، ومطابقة قائمة تجزئة الكلمات في قاعدة البيانات ، وقم بتخطيط عنوان URL المقابل ، ثم إرجاع النتيجة.
بيئة التنمية
مكتبة التبعية
- Pymysql: واجهة بين Python و MySQL
- Jieba: مكتبة Python for Word sciple
العمارة العامة
يستخدم بعض زحفهم إطار عمل Scrapy لزحف شبكة الأخبار بجامعة Liaoning للهندسة والتكنولوجيا. وصف الأجزاء الرئيسية من إطار Scrapy:
- ملف IntusPider.py: عملية الاستخراج الرئيسية لمعلومات صفحة الويب ، باستخدام مكالمات الحلقة المتداخلة ، باستخدام الخوارزميات الأولى للعمق لإجراء مكالمات متكررة ، وتوضع جميع صفحات أخبار HTML في جامعة Liaoning ، فإن استخراج المعلومات المطلوبة (العنوان) ، وتوفيرها إلى كائن العنصر. طريقة التحليل المستخدمة من قبل الزواحف هي xpath
- items.py يحدد الكائن ليتم زحفه.
- تقوم Pipeline.py بتخزين الكائنات المحفوظة في قاعدة بيانات MySQL من خلال واجهة MySQL. الملفات الأخرى هي بعض ملفات التكوين ، ولا توجد تغييرات تقريبًا ، وتم التعليق على موقع التغييرات. الجزء الزاحف ينتهي هنا.
الفكرة الشاملة لمحركات البحث: مشاركة العناوين المخزنة في قاعدة البيانات وإنشاء فهرس الكلمات الرئيسية. ثانياً ، بناءً على تواتر الكلمات الرئيسية ، يتم إنشاء جدول فهرس للكلمات الرئيسية والحوادث. وصف الوثيقة الرئيسية:
- intu.py: بناء جدول قاعدة البيانات ، خذ البيانات المزروعة بواسطة الزاحف ، وأداء تجزئة الكلمات ، وقم بتخزينها في الجداول الأمامية والخلف على التوالي.
- Forward.py: الجدول الأمامي ، وتحديد مكون الفئة
forwardIndexTableItem ، وحدد محتوى الصفيف في الجدول ، وفي فئة الجدول الأمامي forwardIndexTable ، يتم تنفيذ العنوان وتخزينه في جدول قاعدة البيانات. - المعجم: تجزئة الكلمات ، تحديد العملية: الحصول على معرفه من خلال الكلمات ، الحصول على الكلمات من خلال معرف ، إنشاء قائمة تجزئة الكلمات ، وقائمة تجزئة الكلمات ؛
- القائمة الخلفية: الجدول الخلفي ، معالجة البيانات في الجدول الأمامي.
- Linesengine: فئة محرك البحث ، قم بتشغيل هذا الملف مباشرة ، يمكنك إرجاع العنوان المقابل وعنوان URL عن طريق الاستعلام عن الكلمات التي أدخلتها. يتمثل الأساسية في تقسيم محتوى الإدخال ، ثم فرز العنوان المقابل وفقًا للكلمة الرئيسية ، ثم طباعة الأسطر العشرة الأولى وفقًا لعدد الكلمات الرئيسية.
ملاحظات وأوجه القصور:
- بادئ ذي بدء ، يكون الزاحف ثابتًا. إذا كانت هناك عناوين مكررة في قاعدة البيانات ، فسوف يفشل إدخال البيانات. يحتاج الجدول إلى مسح وإعادة تجزئة.
- يتم إصلاح محتوى قاعدة البيانات.
- يرتبط معدل البحث عن دقة النعت في الالتفاف. عند الزحف ، يكون تخطيط صفحة الويب واضحًا للغاية ، والأخبار التي قمت بزحفها لا يتم تكرارها.
- في المستقبل ، يمكنك إضافة صفحة ويب ، والبحث من خلال موقع الويب ، وإنشاء واجهة ويب.
- الزحف وعمليات البحث مستقلة ، ويمكن أيضًا زحف شبكات الأخبار الأخرى ، فقط تحتاج إلى جزء الزاحف.
كيفية استخدام
- إعداد بيئة الاعتماد: بيئة Python3 ، إطار Scrapy ، تثبيت Pymysql ، تثبيت مكتبة Word Word ، وتثبيت MySQL ، وقاعدة بيانات MySQL إنشاء MyTable ، وجدول بيانات Intu.
- استنساخ GIT الأول للدليل المحدد
- افتح وحدة التحكم تحت Windows ، وأدخل المجلد المقابل ، وأدخل
scrapy crawl Intu - انتظر نتيجة الزحف ، والزحف قد انتهى.
- قم بتشغيل ملف seachengine.py وأدخل محتوى النص الذي تستفسر عنه