
زاحف ويب بسيط وسريع مصمم لاكتشاف سهل وسريع لنقاط النهاية والأصول داخل تطبيق ويب
مزاحف ويب سريع بلغة Go لجمع عناوين URLs ومواقع ملفات JavaScript. هذه أداة بسيطة تعتمد على مكتبة Gocolly الرائعة.
عنوان URL واحد:
echo https://google.com | hakrawler
عناوين URLs متعددة:
cat urls.txt | hakrawler
تحديد مهلة لكل سطر من الإدخال القياسي بعد 5 ثوانٍ:
cat urls.txt | hakrawler -timeout 5
إرسال جميع الطلبات عبر بروكسي:
cat urls.txt | hakrawler -proxy http://localhost:8080
تضمين النطاقات الفرعية:
echo https://google.com | hakrawler -subs
ملاحظة: مشكلة شائعة هي أن الأداة لا تعيد أي عناوين URLs. يحدث هذا عادةً عندما يتم تحديد نطاق (https://example.com)، لكنه يعيد التوجيه إلى نطاق فرعي (https://www.example.com). لا يتم تضمين النطاق الفرعي في النطاق، لذا لا تتم طباعة أي عناوين URLs. للتغلب على ذلك، إما حدد عنوان URL النهائي في سلسلة إعادة التوجيه أو استخدم الخيار
-subsلتضمين النطاقات الفرعية.
احصل على جميع النطاقات الفرعية لجوجل، ابحث عن تلك التي تستجيب لـ http(s)، ثم قم بمزاحفتها جميعًا.
echo google.com | haktrails subdomains | httpx | hakrawler
أولاً، ستحتاج إلى تثبيت go.
ثم قم بتشغيل هذا الأمر لتنزيل وتجميع hakrawler:
go install github.com/hakluke/hakrawler@latest
يمكنك الآن تشغيل ~/go/bin/hakrawler. إذا كنت ترغب في تشغيل hakrawler فقط بدون المسار الكامل، فستحتاج إلى export PATH="~/go/bin/:$PATH". يمكنك أيضًا إضافة هذا السطر إلى ملف ~/.bashrc الخاص بك إذا كنت تريد أن يستمر هذا الإعداد.
echo https://www.google.com | docker run --rm -i hakluke/hakrawler:v2 -subs
من الأسهل بكثير استخدام طريقة dockerhub أعلاه، ولكن إذا كنت تفضل تشغيله محليًا:
git clone https://github.com/hakluke/hakrawler
cd hakrawler
sudo docker build -t hakluke/hakrawler .
sudo docker run --rm -i hakluke/hakrawler --help
ملاحظة: سيقوم هذا بتثبيت إصدار أقدم من hakrawler بدون جميع الميزات، وقد يكون به أخطاء. أوصي باستخدام إحدى الطرق الأخرى.
sudo apt install hakrawler
ثم، لتشغيل hakrawler:
echo https://www.google.com | docker run --rm -i hakluke/hakrawler -subs
Usage of hakrawler:
-d int
عمق الزحف. (القيمة الافتراضية 2)
-dr
تعطيل متابعة إعادة التوجيه HTTP.
-h string
تخصيص الرؤوس مفصولة بفاصلتين منقوطتين. مثال: -h "Cookie: foo=bar;;Referer: http://example.com/"
-i الزحف داخل المسار فقط
-insecure
تعطيل التحقق من TLS.
-json
إخراج بصيغة JSON.
-proxy string
عنوان URL للبروكسي. مثال: -proxy http://127.0.0.1:8080
-s إظهار مصدر عنوان URL بناءً على مكان العثور عليه. مثال: href, form, script, إلخ.
-size int
الحد الأقصى لحجم الصفحة، بالكيلوبايت. (القيمة الافتراضية -1)
-subs
تضمين النطاقات الفرعية للزحف.
-t int
عدد الخيوط المستخدمة. (القيمة الافتراضية 8)
-timeout int
أقصى وقت لزحف كل عنوان URL من الإدخال القياسي، بالثواني. (القيمة الافتراضية -1)
-u إظهار عناوين URLs الفريدة فقط.
-w إظهار الرابط الذي تم العثور فيه على عنوان URL.