
खोजी विश्लेषण के लिए सार्वजनिक Snap Map स्थानों को स्क्रैप करता है, कहानियों को डाउनलोड और वर्गीकृत करता है, जिसमें यादृच्छिक भू-स्थान और स्वचालित समीक्षा कार्यप्रवाह शामिल हैं।
यह प्रोग्राम Snapchat के सार्वजनिक Snap Map पर कई स्थानों पर खोज कर सकता है और बाद में जांच और वर्गीकरण के लिए सभी स्टोरी डाउनलोड कर सकता है। यह बहुत अज्ञात है कि Snapchat यह कैसे तय करता है कि कौन से वीडियो मानचित्र पर किस "बिंदु" पर दिखाई देंगे, इसलिए स्क्रैपर उस भू-स्थान को भी कुछ सौ मीटर तक बदल सकता है जहां से वह स्क्रैप करता है, ताकि API आपको कुछ और प्रासंगिक वीडियो देने के लिए राजी हो सके।
इसे Linux पर परीक्षण किया गया है, लेकिन यह Windows/Mac पर भी एक वीडियो व्यूअर स्थापित होने पर काम करना चाहिए।
git clone https://github.com/nemec/snapchat-map-scraper.git
cd snapchat-map-scraper/
python3 -m venv env # वर्चुअल वातावरण बनाएं
source env/bin/activate # वर्चुअल वातावरण सक्रिय करें
pip3 install -r requirements.txt
प्रत्येक चरण को क्रम में पालन करें। साथ ही, सुनिश्चित करें कि आपने अपना वर्चुअल वातावरण सक्रिय कर लिया है, अन्यथा पैकेज गायब होंगे।
यह डेटाबेस खोज प्रश्नों के एक समूह से संबंधित डेटा रखता है। चूंकि SQLite न्यूनतम ओवरहेड के साथ डेटाबेस फ़ाइलें बनाता है, इसलिए आपको हर बार जब आप डेटा का नमूना लेना चाहते हैं तो एक नया डेटाबेस बनाना चाहिए।
python3 story_downloader.py create snap.db
add कमांड डेटाबेस में एक नया स्थान जोड़ेगा। प्रोग्राम बाद में सभी जोड़े गए स्थानों से स्नैप को स्क्रैप और लॉग करेगा ताकि आप एक साथ कई स्थानों को ट्रैक कर सकें। अपने रुचि के बिंदु का अक्षांश और देशांतर खोजें (जैसा कि नीचे दिखाया गया है, यह आसानी से Snap Map पर पाया जा सकता है) और उन्हें नीचे दिए गए कमांड में बदलें। लेबल यह याद रखने में आसान बनाता है कि कोई बिंदु कहां है।
python3 story_downloader.py add --database snap.db --label "downtown dallas" 32.783038 -96.796388
# Added downtown dallas to database

scrape कमांड सभी जोड़े गए स्थानों के माध्यम से पुनरावृत्त करता है और उस स्थान पर स्नैप डाउनलोड करता है। पूर्वावलोकन, वीडियो और ओवरले सभी डाउनलोड होते हैं, लेकिन review कमांड फिलहाल केवल वीडियो से निपट सकता है।
वैकल्पिक तर्क:
--randomize भू-स्थान को 500 मीटर के भीतर बदल देगा, जिसका उद्देश्य Snapchat के API को नए वीडियो भेजने के लिए प्रेरित करना है जो अभी तक परोसे नहीं गए हैं। मुझे नहीं पता कि Snapchat एक बिंदु के लिए कुल वीडियो का केवल एक उपसमूह क्यों भेजता है, शायद सेवा को अधिक स्केलेबल बनाने के लिए।--repeat एप्लिकेशन को अनंत रूप से लूप करने का कारण बनेगा ताकि नए वीडियो खोजे जा सकें। इसे रात भर चलने दें ताकि अधिक से अधिक संग्रह किया जा सके।--sleep यह संशोधित करेगा कि दोहराने से पहले एप्लिकेशन कितनी देर सोता है। डिफ़ॉल्ट 120 सेकंड है और केवल तब प्रभावी होता है जब --repeat शामिल किया जाता है।python3 story_downloader.py scrape "downtown dallas"python3 story_downloader.py scrape --database snap.db --randomize --repeat
# Scraped 16 media from location downtown dallas
# Sleeping for 120 seconds...
review कमांड सभी असमीक्षित वीडियो को देखता है और प्रत्येक को समीक्षा के लिए एक वीडियो प्लेयर में खोलता है। एक बार जब आप वीडियो प्लेयर प्रक्रिया को बंद कर देते हैं, तो CLI आपको एक "वर्गीकरण" के लिए संकेत देगा। यह वीडियो में स्थिति का वर्णन करने वाला कोई भी पाठ या टैग आदि हो सकता है। यदि वीडियो अप्रासंगिक है, तो वर्गीकरण खाली छोड़ दें और बस "Enter" दबाएं। एक बार सभी शेष वीडियो वर्गीकृत हो जाने के बाद, एप्लिकेशन बाहर निकल जाएगा। आपके ऑपरेटिंग सिस्टम के आधार पर,
python3 story_downloader.py review --database snap.db
# Classify or leave blank: police protesters
# 15 remaining
# Classify or leave blank:
# 14 remaining
# Classify or leave blank: fire
# 13 remaining
# ...
export कमांड सभी "वर्गीकृत" वीडियो को आगे की समीक्षा/संपादन/प्रकाशन के लिए एक नए फ़ोल्डर में कॉपी करेगा।
python3 story_downloader.py export --database snap.db export/
# 3 video(s) exported
ls export/
# 2020-05-29-04:26:30-fire.mp4
# 2020-05-30-12:26:57-crowd.mp4
# '2020-05-30-21:16:22-line of people.mp4'