
الزحف إلى صفحات الويب (العادية أو onion) واستخراجها عبر شبكة TOR
يجمع بين سهولة الاستخدام وميزات الخصوصية القوية التي توفرها Tor، مما يتيح جمع البيانات بشكل آمن وغير قابل للتتبع. مثالي للمبرمجين المبتدئين والمتمرسين على حد سواء، وهذه الأداة ضرورية لجمع البيانات بشكل مسؤول في العصر الرقمي.
[![Release][release-version-shield]][releases-link] [![Last Commit][last-commit-shield]][commit-link] ![Python][python-version-shield] [![Quality Gate Status][quality-gate-shield]][quality-gate-link] [![license][license-shield]][license-link]
إذا كنت من محبي الطرفية (terminal) فأنت تعلم أن الأمور يجب أن تكون بسيطة وواضحة. تمرير المخرجات إلى أدوات أخرى أمر ضروري والدقة هي المفتاح.
باستخدام وسيط واحد فقط، يمكنك قراءة صفحة ويب .onion أو صفحة عادية، عبر شبكة TOR، وباستخدام الأنابيب (pipes) يمكنك تمرير المخرجات إلى أي أداة أخرى تفضلها.
$ torcrawl -u http://www.github.com/ | grep 'google-analytics'
<meta-name="google-analytics" content="UA-XXXXXX- ">
إذا كنت تريد الزحف إلى روابط صفحة ويب، فاستخدم -c وBAM ستحصل على جميع الروابط الداخلية في ملف. يمكنك حتى استخدام -d للزحف إليها وهكذا. يمكنك أيضًا استخدام الوسيط -p للانتظار بضع ثوانٍ قبل الزحف التالي.
$ torcrawl -v -u http://www.github.com/ -c -d 2 -p 2
# TOR is ready!
# URL: http://www.github.com/
# Your IP: XXX.XXX.XXX.XXX
# Crawler started from http://www.github.com/ with 2 depth crawl and 2 second(s) delay:
# Step 1 completed with: 11 results
# Step 2 completed with: 112 results
# File created on /path/to/project/links.txt
[!TIP]
الزحف ليس غير قانوني، لكن انتهاك حقوق النشر هو كذلك. من الأفضل دائمًا التحقق من الشروط والأحكام الخاصة بالموقع قبل البدء في الزحف إليه. بعض المواقع تُعِدّ ما يُسمىrobots.txtلإخبار برامج الزحف بعدم زيارة تلك الصفحات.
سيتيح لك هذا الزاحف تجاوز ذلك، لكننا نوصي دائمًا باحترام robots.txt.
pip install torcrawlgit clone https://github.com/MikeMeliz/TorCrawl.py.gitpip install -r requirements.txtapt-get install torservice tor starttor.exe][tor-download]، ثم:tor.exe --service installtor.exe --service startbrew install torbrew services start tor| الوسيطة | الطويلة | الوصف |
|---|---|---|
| عام: | ||
| -h | --help | رسالة المساعدة |
| -v | --verbose | عرض مزيد من المعلومات حول التقدم |
| -u | --url *.onion | عنوان URL لصفحة الويب المراد الزحف إليها أو استخراجها |
| -w | --without | بدون استخدام شبكة TOR |
| -rua | --random-ua | تفعيل التدوير العشوائي لوكيل المستخدم للطلبات |
| -rpr | --random-proxy | تفعيل التدوير العشوائي للوكيل من res/proxies.txt (يتطلب علامة -w، وكيل واحد لكل سطر، التنسيق: host:port) |
| -px | --proxy | عنوان IP لوكيل SOCKS5 (الافتراضي: 127.0.0.1 لاستخدام TOR) |
| -pr | --proxyport | منفذ وكيل SOCKS5 (الافتراضي: 9050) |
| -f | --folder | الدليل الذي سيحتوي على الملفات المُنشأة |
| -V | --version | عرض الإصدار والخروج |
| استخراج: | ||
| -e | --extract | استخراج كود الصفحة إلى الطرفية أو ملف (الافتراضي: الطرفية) |
| -i | --input filename | ملف الإدخال الذي يحتوي على عنوان URL (عناوين) (مفصولة بسطر) |
| -o | --output [filename] | إخراج الصفحة (الصفحات) إلى ملف (ملفات) (لصفحة واحدة) |
| -y | --yara | إجراء بحث بكلمة مفتاحية yara: h = البحث في كائن html بالكامل، t = البحث في النص فقط |
| زحف: | ||
| -c | --crawl | الزحف إلى موقع الويب (الإخراج الافتراضي في website/links.txt) |
| -d | --depth | تعيين عمق تنقل الزاحف (الافتراضي: 1) |
| -p | --pause | ثوانٍ من التوقف بين الطلبات (الافتراضي: 0) |
| -j | --json | تصدير نتائج الزحف إلى JSON بالإضافة إلى مخرجات txt |
| -x | --xml | تصدير نتائج الزحف إلى XML بالإضافة إلى مخرجات txt |
| -DB | --database | تصدير نتائج الزحف ورسم الروابط إلى قاعدة بيانات SQLite |
| -vis | --visualization | إنشاء تصور HTML من قاعدة بيانات SQLite (يتطلب -DB) |
| -l | --log | ملف سجل بعناوين URL التي تمت زيارتها ورمز الاستجابة الخاص بها |
لاستخراج صفحة ويب واحدة فقط إلى الطرفية:
$ python torcrawl.py -u http://www.github.com
<!DOCTYPE html>
...
</html>
استخرج إلى ملف (github.htm) دون استخدام TOR:
$ python torcrawl.py -w -u http://www.github.com -o github.htm
## File created on /script/path/github.htm
استخرج إلى الطرفية وابحث فقط عن السطر الذي يحتوي على google-analytics:
$ python torcrawl.py -u http://www.github.com | grep 'google-analytics'
<meta name="google-analytics" content="UA-*******-*">
استخرج إلى ملف وابحث فقط عن السطر الذي يحتوي على google-analytics باستخدام yara:
$ python torcrawl.py -v -w -u https://github.com -e -y 0
...
ملاحظة: حدّث res/keyword.yar للبحث عن كلمات مفتاحية أخرى.
استخدم -y 0 للبحث في html الخام و-y 1 للبحث في النص فقط.
استخراج مجموعة من صفحات الويب (المستوردة من ملف) إلى الطرفية:
$ python torcrawl.py -i links.txt
...
تتبع روابط صفحة الويب دون استخدام TOR، وأظهر أيضًا مخرجات مطوّلة (مفيدة جدًا):
$ python torcrawl.py -v -w -u http://www.github.com/ -c
## URL: http://www.github.com/
## Your IP: *.*.*.*
## Crawler Started from http://www.github.com/ with step 1 and wait 0
## Step 1 completed with: 11 results
## File created on /script/path/links.txt
تتبع صفحة الويب بعمق 2 (نقرتان) وانتظار 5 ثوانٍ قبل تتبع الصفحة التالية: