
एक Instagram OSINT उपकरण जो किसी Instagram प्रोफ़ाइल पर उपलब्ध सभी जियोटैग किए गए स्थानों को एकत्र करता है ताकि उन्हें मानचित्र पर प्लॉट किया जा सके और एक JSON में डंप किया जा सके।
TL;DR : ascineema, परियोजना का वीडियो
इंस्टाग्राम प्रोफाइल से जियोटैग किए गए स्थानों को स्क्रैप करने का एक उपकरण। JSON और इंटरैक्टिव मैप में आउटपुट।
sudo apt install chromium-chromedriver && chmod a+x /usr/bin/chromedriver
git clone https://github.com/bernsteining/instaloctrack
cd instaloctrack
pip3 install .
या Docker का उपयोग करें:
sudo docker build -t instaloctrack -f Dockerfile .
instaloctrack -h
usage: instaloctrack [-h] [-t TARGET_ACCOUNT] [-l LOGIN] [-p PASSWORD] [-v]
इंस्टाग्राम स्थान डेटा संग्रह उपकरण। उपयोग: python3 instaloctrack.py -t <target_account>
वैकल्पिक तर्क:
-h, --help यह सहायता संदेश दिखाएं और बाहर निकलें
-t TARGET_ACCOUNT, --target TARGET_ACCOUNT
जांच करने के लिए इंस्टाग्राम प्रोफाइल
-l LOGIN, --login LOGIN
कनेक्ट करने के लिए इंस्टाग्राम प्रोफाइल, लक्ष्य खाते के
इंस्टाग्राम पोस्ट तक पहुंचने के लिए
-p PASSWORD, --password PASSWORD
कनेक्ट करने के लिए इंस्टाग्राम प्रोफाइल का पासवर्ड
-v, --visual Chromium GUI खोलता है, अन्यथा Chromium हेडलेस है
उदा.
instaloctrack -t <target_account>
यदि लक्ष्य प्रोफाइल निजी है और आपके पास एक खाता है जो लक्ष्य प्रोफाइल को फॉलो करता है, तो आप कनेक्टेड सत्र के साथ डेटा स्क्रैप कर सकते हैं:
instaloctrack -t <target_account> -l <your_account> -p <your_password>
या Docker के साथ:
sudo docker run -v /tmp/output:/tmp/output instaloctrack -t <target_account> -o /tmp/output
सबसे पहले, हम सेलेनियम के वेबड्राइवर की मदद से पूरे इंस्टाग्राम प्रोफाइल को स्क्रॉल करके खाते के सभी चित्रों के लिंक प्राप्त करते हैं।
फिर, हम प्रत्येक चित्र लिंक को एसिंक्रोनस रूप से (asyncio) प्राप्त करते हैं, जांचते हैं कि चित्र विवरण में कोई स्थान है या नहीं, और यदि है तो स्थान का डेटा और टाइमस्टैम्प प्राप्त करते हैं।
चूंकि इंस्टाग्राम GPS निर्देशांक प्रदान नहीं करता है, और हमें केवल स्थानों के नाम दिए जाते हैं, हमें इन्हें जियोकोड करना होता है (अर्थात नाम से GPS निर्देशांक प्राप्त करना)।
इसके लिए, मैंने Nominatim के शानदार API का उपयोग किया, जो OpenStreetMap का उपयोग करता है। हमारे उपयोग के लिए, किसी API कुंजी की आवश्यकता नहीं है, और हम हर सेकंड एक बार GPS निर्देशांक का अनुरोध करके Nominatim की उपयोग नीति का सम्मान करते हैं।
अंततः, एक बार हमारे पास सभी GPS निर्देशांक हो जाने पर, हम एम्बेडेड जावास्क्रिप्ट के साथ एक HTML उत्पन्न करते हैं (jinja2 टेम्पलेटिंग के लिए धन्यवाद) जो हमारे सभी स्थानों के साथ एक Open Street Map ( Leaflet लाइब्रेरी के लिए धन्यवाद) प्लॉट करता है। इस चरण के लिए फिर से, किसी API कुंजी की आवश्यकता नहीं है।
साथ ही, स्क्रिप्ट द्वारा एकत्र किया गया डेटा (स्थान नाम, टाइमस्टैम्प, GPS निर्देशांक, त्रुटियां) पुन: उपयोग के लिए JSON फ़ाइल में डंप किया जाता है।
एक उदाहरण के रूप में, यहाँ पूर्व फ्रांसीसी राष्ट्रपति के इंस्टाग्राम प्रोफाइल, @fhollande पर आउटपुट है:

हीटमैप:

मार्कर पर क्लिक करने पर उपलब्ध जानकारी:

स्थान डेटा के बारे में आँकड़े:

JSON डेटा डंप (किसी दिए गए स्थान के लिए प्रारूप दिखाने के लिए इसका एक भाग):
{
"link": "https://www.instagram.com/p/-Q_9EvR9eu",
"place": {
"id": "290297",
"name": "Musée du quai Branly - Jacques Chirac",
"slug": "musee-du-quai-branly-jacques-chirac",
"street_address": " 37 quai Branly",
" zip_code": " 75007",
" city_name": " Paris",
" region_name": " ",
" country_code": " FR"
},
"timestamp": "2015-11-19",
"gps": {
"lat": "48.8566969",
"lon": "2.3514616"
}
}