برنامج نصي bash إلى العنكبوت ، واتبع الروابط ، وجلب عناوين URL (مع تصفية مدمجة) في ملف نصي تم إنشاؤه.
قم بتنزيل البرنامج النصي وحفظه على الموقع المطلوب على جهازك.
ستحتاج إلى تثبيت wget على جهازك.
للتحقق مما إذا كانت مثبتة بالفعل ، حاول تشغيل الأمر wget بنفسه.
إذا كنت على جهاز Mac أو تشغيل Linux ، فمن المحتمل أن تكون قد قمت بالفعل بتثبيت WGET ؛ ومع ذلك ، إذا كان أمر wget لا يعمل ، فقد لا يتم إضافته بشكل صحيح إلى متغير المسار الخاص بك.
إذا كنت تقوم بتشغيل Windows:
قم بتنزيل أحدث wget Binary لنظام التشغيل Windows من https://eternallybored.org/misc/wget/
التنزيل متاح كضغط مع وثائق ، أو مجرد exe. أوصي فقط exe.
إذا قمت بتنزيل zip ، فقم باستخراج الكل (إذا كان Windows Bruct in zip stility يعطي خطأ ، فاستخدم 7-ZIP). بالإضافة إلى ذلك ، إذا قمت بتنزيل الإصدار 64 بت ، أعد تسمية ملف wget64.exe إلى wget.exe
نقل wget.exe إلى C:WindowsSystem32
تأكد من دعم grep على جهاز الكمبيوتر الخاص بك -E, --extended-regexp . للتحقق من الدعم ، قم بتشغيل grep --help وابحث عن العلم. للتحقق من الإصدار المثبت ، قم بتشغيل grep -V .
افتح Git Bash ، Terminal ، وما إلى ذلك وقم بتنفيذ الأذونات لنص fetchurls.sh :
chmod +x /path/to/script/fetchurls.shأدخل ما يلي لتشغيل البرنامج النصي:
./fetchurls.sh [OPTIONS]...بدلاً من ذلك ، يمكنك التنفيذ مع أي مما يلي:
sh ./fetchurls.sh [OPTIONS]...
# -- OR -- #
bash ./fetchurls.sh [OPTIONS]...إذا لم تقم بتمرير أي خيارات ، فسيتم تشغيل البرنامج النصي في الوضع التفاعلي.
إذا كان عنوان URL للمجال يتطلب المصادقة ، فيجب عليك تمرير اسم المستخدم وكلمة المرور كعلامات ؛ لم تتم مطالبتك بهذه القيم في الوضع التفاعلي.
يمكنك تمرير الخيارات (كعلامات) مباشرة إلى البرنامج النصي ، أو تمرير أي شيء لتشغيل البرنامج النصي في الوضع التفاعلي.
-d ، --domainhttps://example.comعنوان URL للمجال المؤهل بالكامل (مع بروتوكول) تود الزحف.
تأكد من إدخال البروتوكول الصحيح (على سبيل المثال https ) والنطاق الفرعي لعنوان URL أو الملف الذي تم إنشاؤه فارغًا أو غير مكتمل. سيحاول البرنامج النصي تلقائيًا اتباع أول إعادة توجيه HTTP ، إذا وجدت. على سبيل المثال ، إذا قمت بإدخال البروتوكول غير الصحيح ( http://... ) لـ https://www.adamdehaven.com ، سيتابع البرنامج النصي تلقائيًا إعادة التوجيه وجلب جميع عناوين URL لبروتوكول HTTPS الصحيح.
سيتم نسخ عناوين URL الخاصة بالمجال بنجاح طالما أن عنوان URL المستهدف (أو إعادة التوجيه الأول) يعيد حالة HTTP 200 OK .
-l ، --location~/Desktop/c/Users/username/Desktopالموقع (الدليل) حيث ترغب في حفظ النتائج التي تم إنشاؤها.
إذا لم يكن الدليل موجودًا في الموقع المحدد ، طالما أن بقية المسار صالح ، فسيتم إنشاء الدليل الجديد تلقائيًا.
-f ، --filenamedomain-topleveldomainexample-comالاسم المطلوب للملف الذي تم إنشاؤه ، بدون مسافات أو تمديد الملف.
-e ، --exclude"css|js|map"قائمة محددة من ملحقات الملفات لاستبعادها من النتائج.
لمنع استبعاد الملفات التي تتطابق مع القائمة الافتراضية لملحقات الملفات ، ما عليك سوى تمرير سلسلة فارغة ""
-s ، --sleep02عدد الثواني للانتظار بين الاستردادات.
-u ، --usernamemarty_mcflyإذا كان عنوان URL للمجال يتطلب المصادقة ، فإن اسم المستخدم يمر إلى أمر WGET.
إذا كان اسم المستخدم يحتوي على أحرف فضاء ، فيجب أن تمر داخل اقتباسات. قد يتم تعيين هذه القيمة فقط مع العلم ؛ لا يوجد موجه في الوضع التفاعلي.
-p ، --passwordthats_heavyإذا كان عنوان URL للمجال يتطلب المصادقة ، فإن كلمة المرور تنقلها إلى أمر WGET.
إذا كانت كلمة المرور تحتوي على أحرف فضاء ، فيجب أن تمر داخل اقتباسات. قد يتم تعيين هذه القيمة فقط مع العلم ؛ لا يوجد موجه في الوضع التفاعلي.
-n ، --non-interactiveيسمح للبرنامج النصي بالتشغيل بنجاح في قذيفة غير تفاعلية.
سيستخدم البرنامج النصي إعدادات --location و --filename ما لم يتم تعيين الأعلام المعنية بشكل واضح.
-i ، --ignore-robotsتجاهل robots.txt للمجال.
-w ، --wgetإظهار تعليمات تثبيت WGT. قد تختلف تعليمات التثبيت اعتمادًا على تكوين جهاز الكمبيوتر الخاص بك.
-v ، -V ، --versionعرض معلومات الإصدار.
-t ، --troubleshootingالمخرجات التي تم استلامها أعلام الخيار مع القيم المرتبطة بها في وقت التشغيل لاستكشاف الأخطاء وإصلاحها.
-h ، -? ، --helpإظهار محتوى المساعدة.
إذا لم تقم بتمرير علامة -المجال ، فسيتم تشغيل البرنامج النصي في الوضع التفاعلي وسيتم مطالبتك بخيارات غير محددة.
أولاً ، سيُطلب منك إدخال عنوان URL الكامل (بما في ذلك بروتوكول HTTPS/HTTP) للموقع الذي ترغب في الزحف إليه:
Fetch a list of unique URLs for a domain.
Enter the full domain URL ( http://example.com )
Domain URL:سيُطلب منك بعد ذلك إدخال الموقع (الدليل) للمكان الذي ترغب في حفظ فيه النتائج التي تم إنشاؤها (الافتراضيات إلى سطح المكتب على Windows):
Save file to directory
Directory: /c/Users/username/Desktopبعد ذلك ، سيُطلب منك تغيير/قبول اسم الملف الذي تم إنشاؤه (ما عليك سوى الضغط على Enter لقبول اسم الملف الافتراضي):
Save file as
Filename (no file extension, and no spaces): example-comأخيرًا ، سيُطلب منك تغيير/قبول القائمة الافتراضية لملحقات الملفات المستبعدة (اضغط على Enter لقبول القائمة الافتراضية):
Exclude files with matching extensions
Excluded extensions: bmp | css | doc | docx | gif | jpeg | jpg | JPG | js | map | pdf | PDF | png | ppt | pptx | svg | ts | txt | xls | xlsx | xmlسوف يزحف البرنامج النصي إلى الموقع وتجميع قائمة عناوين URL الصالحة في ملف نصي جديد. عند اكتماله ، سيعرض البرنامج النصي رسالة وموقع الملف الذي تم إنشاؤه:
Fetching URLs for example.com
Finished with 1 result !
File Location:
/c/Users/username/Desktop/example-com.txtإذا كان هناك ملف يحمل نفس الاسم بالفعل في الموقع (على سبيل المثال ، إذا قمت سابقًا بتشغيل البرنامج النصي لنفس عنوان URL) ، فسيتم كتابة الملف الأصلي .
يقوم البرنامج النصي ، افتراضيًا ، بتصفية العديد من ملحقات الملفات غير المطلوبة عادة.
يمكن تمرير قائمة ملحقات الملفات عبر علامة --exclude ، أو توفيرها عبر الوضع التفاعلي.
.bmp.css.doc.docx.gif.jpeg.jpg.JPG.js.map.pdf.PDF.png.ppt.pptx.svg.ts.txt.xls.xlsx.xmlبالإضافة إلى ذلك ، يتم أيضًا تجاهل ملفات وموقع محدد (بما في ذلك WordPress).
/wp-content/uploads//feed//category//tag//page//widgets.php//wp-json/xmlrpc يجب أن يقوم البرنامج النصي بتصفية معظم أنواع الملفات والأدلة غير المرغوب فيها ؛ ومع ذلك ، يمكنك تحرير التعبيرات العادية التي تقوم بتصفية بعض الصفحات والأدلة وأنواع الملفات عن طريق تحرير وظيفة fetchUrlsForDomain() ضمن ملف fetchurls.sh .
تحذير : إذا لم تكن على دراية بالتعبيرات العادية أو التعبيرات العادية ، فيمكنك كسر البرنامج النصي بسهولة.