الإنجليزية | 中文版
يوفر هذا المشروع أداة قوية لتجشيد الويب التي تجلب نتائج البحث ويحولها إلى تنسيق Markdown باستخدام fastapi و searxng و browserless. ويتضمن القدرة على استخدام الوكلاء لتجاهل الويب ويتعامل مع تحويل محتوى HTML إلى تخفيض كفاءة. يضم الآن تكامل منظمة العفو الدولية لتصفية نتائج البحث. تشمل البدائل jina.ai و firecrawl ai و exa ai و 2markdown ، مما يوفر مختلف حلول تجريف ويب محرك البحث للمطورين.
تأكد من تثبيت ما يلي:
يمكنك استخدام Docker لتبسيط عملية الإعداد. اتبع هذه الخطوات:
استنساخ المستودع :
git clone https://github.com/essamamdani/search-result-scraper-markdown.git
cd search-result-scraper-markdownRun Docker Compose :
docker compose up --build باستخدام هذا الإعداد ، إذا قمت بتغيير ملف .env أو main.py ، لم تعد بحاجة إلى إعادة تشغيل Docker. سيتم إعادة تحميل التغييرات تلقائيًا.
اتبع هذه الخطوات للإعداد اليدوي:
استنساخ المستودع :
git clone https://github.com/essamamdani/search-result-scraper-markdown.git
cd search-result-scraper-markdownإنشاء وتفعيل البيئة الافتراضية :
virtualenv venv
source venv/bin/activateتثبيت التبعيات :
pip install -r requirements.txtقم بإنشاء ملف .env في دليل الجذر مع المحتوى التالي:
SEARXNG_URL=http://searxng:8080
BROWSERLESS_URL=http://browserless:3000
TOKEN=your_browserless_token_here # Replace with your actual token
# PROXY_PROTOCOL=http
# PROXY_URL=your_proxy_url
# PROXY_USERNAME=your_proxy_username
# PROXY_PASSWORD=your_proxy_password
# PROXY_PORT=your_proxy_port
REQUEST_TIMEOUT=30
# AI Integration for search result filter
FILTER_SEARCH_RESULT_BY_AI=true
AI_ENGINE=groq
# GROQ
GROQ_API_KEY=yours_groq_api_key_here
GROQ_MODEL=llama3-8b-8192
# OPENAI
# OPENAI_API_KEY=your_openai_api_key_here
# OPENAI_MODEL=gpt-3.5-turbo-0125قم بتشغيل حاويات Docker لـ Searxng و Browserless :
./run-services.shابدأ تطبيق Fastapi :
uvicorn main:app --host 0.0.0.0 --port 8000 لإجراء استعلام بحث ، أرسل طلبًا الحصول على نقطة نهاية الجذر / مع معلمات الاستعلام q (استعلام البحث) ، و num_results (عدد النتائج) ، format (الحصول على استجابة في JSON أو افتراضيًا في Markdown).
مثال:
curl " http://localhost:8000/?q=python&num_results=5&format=json " # for JSON format
curl " http://localhost:8000/?q=python&num_results=5 " # by default Markdown لجلب وتحويل محتوى عنوان URL محدد إلى تخفيض الطلب ، أرسل طلبًا إلى /r/{url:path} نقطة النهاية.
مثال:
curl " http://localhost:8000/r/https://example.com&format=json " # for JSON format
curl " http://localhost:8000/r/https://example.com " # by default Markdown لجلب نتائج البحث عن الصور ، أرسل طلب الحصول على نقطة نهاية /images مع معلمات الاستعلام q (استعلام البحث) و num_results (عدد النتائج).
مثال:
curl " http://localhost:8000/images?q=puppies&num_results=5 " لجلب نتائج البحث عن الفيديو ، أرسل طلبًا إلى نقطة نهاية /videos مع معلمات الاستعلام q (استعلام البحث) و num_results (عدد النتائج).
مثال:
curl " http://localhost:8000/videos?q=cooking+recipes&num_results=5 " يستخدم هذا المشروع الوكلاء Geonode لتجريف الويب. يمكنك استخدام الرابط التابع لـ Geonode الخاص بي للبدء في خدمات الوكيل الخاصة بهم.
للحصول على شرح مفصل للرمز ، تفضل بزيارة المقالة هنا.
هذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. انظر ملف الترخيص للحصول على التفاصيل.
عيسى مامداني - issamamdani.com
المساهمات مرحب بها! لا تتردد في تقديم طلب سحب.