
अव्यवस्थित URL सूची को साफ़ करें
यह URL सूचियों को डी-क्लटर (de-clutter) करने के लिए उपयोग किया जाने वाला एक टूल है। शुरुआती बिंदु के रूप में, मैंने Somdev Sangwan द्वारा बनाए गए शानदार टूल uro को आधार बनाया। लेकिन मैं कुछ चीज़ें बदलना चाहता था, कुछ सुधार करना चाहता था (जैसे GUIDs से निपटना) और इसे और अधिक अनुकूलन योग्य बनाना चाहता था।
urless Python 3 को सपोर्ट करता है।
urless को डिफ़ॉल्ट (ग्लोबल) python वातावरण में इंस्टॉल करें।
pip install urless
या
pip install git+https://github.com/xnl-h4ck3r/urless.git -v
आप इसे इसके साथ अपग्रेड कर सकते हैं:
pip install --upgrade urless
pipx का उपयोग करके पृथक (isolated) python वातावरण में त्वरित सेटअप:
pipx install git+https://github.com/xnl-h4ck3r/urless.git
| तर्क | लंबा तर्क | विवरण |
|---|---|---|
| -i | --input | डी-क्लटर करने के लिए URL की एक फ़ाइल। |
| -o | --output | आउटपुट फ़ाइल जिसमें डी-क्लटर की गई URL सूची होगी (डिफ़ॉल्ट: output.txt)। यदि किसी अन्य प्रोग्राम में पाइप किया जाए, तो आउटपुट STDOUT पर लिखा जाएगा। |
| -fk | --filter-keywords | लिंक्स को बाहर करने के लिए कीवर्ड की अल्पविराम से अलग की गई सूची (यदि कोई पैरामीटर न हों)। यह config.yml में निर्दिष्ट FILTER_KEYWORDS सूची को ओवरराइड करेगा। |
| -fe | --filter-extensions | बाहर करने के लिए फ़ाइल एक्सटेंशन की अल्पविराम से अलग की गई सूची। यह config.yml में निर्दिष्ट FILTER_EXTENSIONS सूची को ओवरराइड करेगा। |
| -rp | --remove-params | सभी URL से हटाने के लिए केस-सेंसिटिव पैरामीटर की अल्पविराम से अलग की गई सूची। यह config.yml में निर्दिष्ट REMOVE_PARAMS सूची को ओवरराइड करेगा। यह उदाहरण के लिए cache buster पैरामीटर हटाने में उपयोगी हो सकता है।** |
| -ks | --keep-slash | इनपुट में URL के अंत में मौजूद ट्रेलिंग स्लैश को नहीं हटाया जाएगा। इसलिए आउटपुट में समान URL हो सकते हैं, एक ट्रेलिंग स्लैश के साथ और एक बिना। |
| -khw | --keep-human-written | डिफ़ॉल्ट रूप से, ऐसे किसी भी URL को हटा दिया जाता है जिसके पाथ भाग में 3 से अधिक डैश (-) हों, क्योंकि यह माना जाता है कि यह मानव-लिखित सामग्री (जैसे ब्लॉग पोस्ट) है, और दिलचस्प नहीं है। यह तर्क पास करने पर उन्हें आउटपुट में रखा जाएगा। |
| -kym | --keep-yyyymm | डिफ़ॉल्ट रूप से, ऐसे किसी भी URL को हटा दिया जाता है जिसके पाथ में /YYYY/MM (जहाँ YYYY वर्ष और MM माह है) होता है, क्योंकि यह माना जाता है कि यह ब्लॉग/समाचार सामग्री है, और दिलचस्प नहीं है। यह तर्क पास करने पर उन्हें आउटपुट में रखा जाएगा। |
| -rcid | --regex-custom-id | सावधानी से उपयोग करें! आपके टारगेट द्वारा उपयोग किए जाने वाले कस्टम ID के लिए Regex। मान को कोट्स में पास करना सुनिश्चित करें। इसके बारे में अधिक जानकारी के लिए नीचे दिया गया अनुभाग देखें। |
| -iq | --ignore-querystring | क्वेरी स्ट्रिंग (URL फ़्रैगमेंट्स # सहित) हटाएं ताकि आउटपुट में केवल अद्वितीय पाथ हों। |
| -fnp | --fragment-not-param | URL फ़्रैगमेंट्स # को पैरामीटर की तरह न मानें, उदाहरण के लिए यदि किसी लिंक में फ़िल्टर कीवर्ड और फ़्रैगमेंट (या पैरामीटर) है तो लिंक आमतौर पर रखा जाता है, लेकिन यदि यह तर्क पास किया जाता है और लिंक में फ़िल्टर शब्द और फ़्रैगमेंट है, तो लिंक हटा दिया जाएगा। साथ ही, यदि यह तर्क पास किया जाता है और -iq / --ignore-querystring उपयोग किया जाता है, तो लिंक में कोई क्वेरी स्ट्रिंग न होने पर फ़्रैगमेंट को लिंक से नहीं हटाया जाएगा। |
| -lang | --language | यदि पास किया जाता है और पाथ के भाग के रूप में विभिन्न भाषा कोड वाले कई URL हैं, तो URL का केवल एक संस्करण आउटपुट होगा। कोड config.yml के LANGUAGE अनुभाग में निर्दिष्ट हैं। |
| -c | --config | YML कॉन्फ़िग फ़ाइल का पाथ। यदि पास नहीं किया जाता है, तो यह डिफ़ॉल्ट कॉन्फ़िग निर्देशिका, जैसे ~/.config/urless/, में config.yml फ़ाइल खोजता है। |
| -dp | --disregard-params | यदि URLs में पैरामीटर हैं तो कुछ फ़िल्टरिंग नहीं की जाती है, क्योंकि डिफ़ॉल्ट रूप से हम सभी संभावित पैरामीटर देखना चाहते हैं। यदि यह तर्क पास किया जाता है, तो किसी भी पैरामीटर की उपस्थिति की परवाह किए बिना फ़िल्टरिंग की जाएगी। |
| -nb | --no-banner | टूल का बैनर आउटपुट छिपाता है (यदि आप urless में इनपुट पाइप करते हैं तो यह डिफ़ॉल्ट रूप से छिपा होता है)। |
| --version | वर्तमान संस्करण संख्या दिखाएं। | |
| -v | --verbose | वर्बोज़ आउटपुट |
आप मूल रूप से URL की एक सूची इनपुट करते हैं (किसी फ़ाइल से, या STDIN से पाइप करके), और एक डी-क्लटर की गई फ़ाइल या URLs प्राप्त करते हैं। लेकिन वे किस तरह से डी-क्लटर की जाती हैं? मैं इसे नीचे समझाऊँगा, लेकिन पहले यहाँ कुछ शब्द दिए गए हैं जिनका उपयोग किया जाएगा:
-fe के साथ पास किया जा सकता है, config.yml में FILTER_EXTENSIONS के साथ निर्दिष्ट किया जा सकता है, या यदि इनमें से कोई भी मौजूद नहीं है, तो .css,.ico,.jpg,.jpeg,.png,.bmp,.svg,.img,.gif,.mp4,.flv,.ogv,.webm,.webp,.mov,.mp3,.m4a,.m4p,.scss,.tif,.tiff,.ttf,.otf,.woff,.woff2,.bmp,.ico,.eot,.htc,.rtf,.swf,.image की एक डिफ़ॉल्ट सूची।-fk के साथ पास किया जा सकता है, config.yml में FILTER_KEYWORDS के साथ निर्दिष्ट किया जा सकता है, या यदि इनमें से कोई भी मौजूद नहीं है, तो blog,article,news,bootstrap,jquery,captcha,node_modules की एक डिफ़ॉल्ट सूची।config.yml में LANGUAGE के साथ निर्दिष्ट किया जा सकता है, या यदि यह मौजूद नहीं है, तो सबसे सामान्य कोड en,en-us,en-gb,fr,de,pl,nl,fi,sv,it,es,pt,ru,pt-br,es-mx,zh-tw,js.ko की एक डिफ़ॉल्ट सूची।-) होते हैं, लेकिन यह GUID नहीं है। इसका तात्पर्य मानव-लिखित सामग्री से है, जैसे how-to-hack-the-planet। यदि तर्क -khw पास किया जाता है, तो इसे नहीं हटाया जाएगा।/YYYY/MM/ होता है, जैसे वर्ष, माह। यह आमतौर पर स्थिर सामग्री होती है जैसे ब्लॉग। यदि तर्क -kym पास किया जाता है, तो इसे नहीं हटाया जाएगा।यहाँ बताया गया है कि क्या होता है: