विषयसूची:
- चरण 1: वीडियो देखें
- चरण 2: शुरू करने से पहले
- चरण 3: गैर सार्वजनिक एपीआई (स्पॉयलर: इंस्ट्रक्शंस में एक है!)
- चरण 4: डेटा को सीधे स्क्रैप करना
- चरण 5: बाहरी सर्वर का उपयोग करके डेटा को स्क्रैप करना:
- चरण 6: उपयोग की सीमाएं
- चरण 7: पढ़ने के लिए धन्यवाद
वीडियो: ESP8266/ESP32 के साथ डेटा स्क्रैप करना: 7 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:20
क्या आप कभी भी अपने Arduino प्रोजेक्ट्स के लिए डेटा प्राप्त करना चाहते हैं, लेकिन इसके लिए कोई सार्वजनिक API नहीं है? या इंस्टाग्राम एपीआई जैसे मामलों में जहां के लिए सेटअप प्रक्रिया बहुत सुविधाजनक नहीं है?
इस निर्देश में हम आपके ESP8266 या ESP32 प्रोजेक्ट्स के लिए किसी वेबसाइट से डेटा स्क्रैप करने के 2 अलग-अलग विकल्पों को देखने जा रहे हैं।
चरण 1: वीडियो देखें
मैंने एक वीडियो बनाया है जो इस निर्देश के समान ही कवर करता है, इसलिए यदि आप रुचि रखते हैं, तो कृपया इसे देखें!
चरण 2: शुरू करने से पहले
बस एक सिर ऊपर है कि जिस डेटा को मैं स्क्रैप करने के बारे में बात कर रहा हूं वह सार्वजनिक सामना करने वाला डेटा है और इसके लिए किसी प्रमाणीकरण की आवश्यकता नहीं है। तो उदाहरण के लिए कहें, मेरी सटीक YouTube ग्राहक संख्या केवल निर्माता स्टूडियो के अंदर मेरे लिए उपलब्ध है, इसलिए डिवाइस को एक अनुरोध करना होगा जो इसे लोड करने के लिए मेरे रूप में प्रमाणित हो। इस प्रकार के अनुरोध इस वीडियो के दायरे से बाहर होंगे। यह जांचने के लिए एक त्वरित परीक्षण है कि पृष्ठ को एक गुप्त विंडो में लोड करने का प्रयास करना है क्योंकि यह स्वचालित रूप से आपको किसी भी साइट पर लॉग इन नहीं करेगा।
इस निर्देश में शामिल तकनीकों के लिए हमें कुछ डेवलपर टूल का उपयोग करना होगा जो ब्राउज़र में उपलब्ध हैं। मैं उन्हें फ़ायरफ़ॉक्स के साथ प्रदर्शित कर रहा हूँ, लेकिन मुझे पता है कि कुछ क्रोम के समान उपकरण हैं और मुझे यकीन है कि अन्य ब्राउज़रों के पास भी हैं।
चरण 3: गैर सार्वजनिक एपीआई (स्पॉयलर: इंस्ट्रक्शंस में एक है!)
पहला तरीका जो हम देखेंगे वह है एक गैर-सार्वजनिक एपीआई का उपयोग करना। यह हमेशा उपलब्ध नहीं होगा, लेकिन यदि ऐसा है तो निश्चित रूप से आपको इसका उपयोग करने का लक्ष्य रखना चाहिए। जिसे मैं "गैर-सार्वजनिक एपीआई" कह रहा हूं, वह मूल रूप से वह जगह है जहां एक साइट अपनी वेबसाइट पर पर्दे के पीछे एक अनजाने एपीआई का उपयोग कर रही है ताकि हम जो डेटा प्राप्त करना चाहते हैं उसे प्राप्त कर सकें।
इसका उपयोग करने के लिए पसंदीदा विकल्प होने के कुछ कारण हैं।
- सबसे बड़ा फायदा यह है कि वेबपेज जितनी बार बदलने की संभावना नहीं है, अगर आप वेब पेज एचटीएमएल से सीधे डेटा स्क्रैप करते हैं, तो हर बार जब वे साइट में बदलाव करते हैं, तो आपकी पार्सिंग टूट सकती है।
- यह सामान्य रूप से अधिक डेटा कुशल है। जब आप किसी वेबपेज को स्क्रैप कर रहे होते हैं तो आप मूल रूप से संपूर्ण HTML पृष्ठ को डाउनलोड कर रहे होते हैं ताकि उसमें से जानकारी के टुकड़े निकाले जा सकें, एपीआई केवल डेटा पॉइंट लौटाने जा रहे हैं, इसलिए आम तौर पर बहुत छोटे अनुरोध होंगे।
- आमतौर पर पार्स करना आसान होता है। आम तौर पर एपीआई जेएसओएन प्रारूप में डेटा लौटाते हैं जो पार्स करने के लिए सीधा है, यह विशेष रूप से सच है यदि आप डेटा के कई टुकड़े निकाल रहे हैं।
हमें पहले यह पता लगाना होगा कि वेबपेज इस तरह के सेटअप का उपयोग करता है या नहीं। सबसे बड़ा सुराग यह है कि यदि साइट रीयल-टाइम में मान को अपडेट करती है जैसे कि किकस्टार्टर पर करती है, लेकिन भले ही ऐसा न हो, फिर भी उम्मीद है कि यह इस सेटअप का उपयोग कर सकता है। अनुदेशक अपनी साइट के लिए कुछ डेटा लाने के लिए एक गैर-सार्वजनिक एपीआई का उपयोग करते हैं, भले ही यह वास्तविक समय में ताज़ा न हो।
यह जांचने के लिए कि क्या साइट इस सेटअप का उपयोग कर रही है, अपने ब्राउज़र के डेवलपर मोड में प्रवेश करें, मुझे ऐसा करने का सबसे आसान तरीका पृष्ठ पर राइट क्लिक करना है और "तत्व का निरीक्षण करें" का चयन करना है।
फिर आप नेटवर्क टैब पर जाना चाहेंगे, यह उन अनुरोधों को प्रदर्शित करेगा जो वेबपृष्ठ पृष्ठभूमि में करता है, ध्यान दें कि इस टैब को खोलने के बाद आपको पृष्ठ को फिर से लोड करने की आवश्यकता हो सकती है क्योंकि यह केवल अभी से किए गए अनुरोध दिखाएगा।
आप आमतौर पर "json" प्रकार वाले लोगों को देखना चाहते हैं। यहां बहुत सारे अनुरोध हो सकते हैं, इसलिए यह प्रकार के आधार पर छाँटने में मदद कर सकता है। आप देख सकते हैं कि किकस्टार्टर अभियान पृष्ठ पर यह बहुत स्पष्ट है कि यह इस सेटअप का उपयोग कर रहा है क्योंकि आप "stats.json" समापन बिंदु पर लगातार अनुरोध किए जा रहे हैं। इंस्ट्रक्शंस के लेखक पेज पर (उदाहरण के लिए मेरा "https://www.instructables.com/member/witnessmenow/" है), वे लगातार अनुरोध नहीं करते हैं, लेकिन आप दूसरों के बीच "शोऑथरस्टैट्स" एंडपॉइंट के अनुरोध को छिपा हुआ देख सकते हैं।
इस अनुरोध के बारे में अधिक जानकारी प्राप्त करने के लिए, आप इस पर क्लिक कर सकते हैं। अनुरोध को दोहराने के लिए आपको यहां से सभी आवश्यक जानकारी प्राप्त करने में सक्षम होना चाहिए। लेकिन ऐसा करने से पहले आप पहले दोबारा जांचना चाहते हैं कि इसमें वह डेटा है जो आप चाहते हैं। प्रतिक्रिया टैब पर क्लिक करें और देखें कि क्या डेटा है।
यदि इसमें वह डेटा है जिसकी आपको आवश्यकता है, तो आप पूरी तरह तैयार हैं! फिर आप एपीआई से जुड़ने के बारे में मेरे पिछले वीडियो में चर्चा किए गए समान तरीकों का उपयोग कर सकते हैं। इसका संक्षिप्त संस्करण यह सुनिश्चित करना है कि अनुरोध पहले पोस्टमैन जैसे टूल पर अपेक्षित रूप से काम करता है और फिर इस उदाहरण प्रोजेक्ट का उपयोग यह जांचने के लिए करता है कि यह आपके डिवाइस पर काम करता है।
JSON डेटा को पार्स करने के लिए मैं अधिकांश परिदृश्यों में ArudinoJSON का उपयोग करने की सलाह दूंगा, यदि यह ऐसा कुछ है जिसके बारे में आप एक निर्देश देना चाहते हैं, तो बस मुझे बताएं!
चरण 4: डेटा को सीधे स्क्रैप करना
आगे हम सीधे वेबपेज से डेटा को स्क्रैप करने पर विचार करेंगे, यह डिवाइस पर पूर्ण वेबपेज का अनुरोध कर रहा है और उस डेटा को पार्स कर रहा है जिसे हम चाहते हैं। मैंने पहले ही उल्लेख किया है कि इस पद्धति पर गैर-सार्वजनिक एपीआई के फायदे हैं, लेकिन कभी-कभी इसकी आवश्यकता होती है!
एक बात जो यहां ध्यान देने योग्य है, यदि आप वेब विकास से परिचित हैं, तो आपको किसी विशेष तत्व के बारे में जानकारी और इसकी संरचना के बारे में जानकारी प्राप्त करने के लिए निरीक्षण तत्व सुविधा का उपयोग करने की आदत हो सकती है। इस दृष्टिकोण के लिए इसे टाला जाना चाहिए, क्योंकि आधुनिक वेब पेज आमतौर पर जावास्क्रिप्ट का उपयोग करके गतिशील रूप से बदले जाते हैं, जो आपके डिवाइस पर नहीं होगा। आपके डिवाइस पर उपलब्ध HTML कोड केवल मूल वेबपेज होगा जिसे डाउनलोड किया गया है। इसका एक अच्छा उदाहरण टीमट्रीज़ पृष्ठ है, वर्तमान दान संख्या 0 से शुरू होती है और बाद में इस एनीमेशन के साथ पृष्ठ में लोड हो जाती है, लेकिन दो उदाहरणों के विपरीत जो हमने पहले देखा है, यह पृष्ठभूमि में डेटा लोड नहीं करता है, इसलिए सही डेटा कहीं और होना चाहिए।
मूल वेब पेज कोड देखने के लिए आप पेज पर राइट क्लिक कर सकते हैं और "स्रोत देखें" का चयन कर सकते हैं। फिर आप अपने इच्छित विशेष डेटा की खोज करना चाहते हैं, इसलिए टीमट्री उदाहरण में जब हम वर्तमान दान गणना की खोज करते हैं, तो हम देख सकते हैं कि वास्तविक गणना गणना तत्व की डेटा-गिनती संपत्ति में संग्रहीत है, यह वह जगह है जहां हमें इसकी आवश्यकता है से डेटा स्क्रैप करें।
आपको एक खोज स्ट्रिंग ढूंढनी होगी जो आपको आपके डेटा तक ले जाए, डिवाइस के लिए कोडिंग करने से पहले इसका पता लगाना बहुत आसान है। इस उदाहरण के लिए, "डेटा-गणना\" की खोज करने से मुझे वह डेटा मिलता है जो हम चाहते हैं, जो एकदम सही है। हमें चिंता करने की ज़रूरत नहीं है कि यह पृष्ठ के अन्य स्थानों में भी मेल खाता है, क्योंकि यह पहले शीर्ष पर पहुंचेगा। यदि आपको तीसरे को हिट करने की आवश्यकता है, तो आप इसे केवल पहले 2 हिट करने के लिए अनदेखा करने के लिए प्रोग्राम कर सकते हैं।
यदि हम टीमट्रीज़ उदाहरण पर एक नज़र डालते हैं, जैसे पहले हमने प्रतिक्रिया शीर्षलेखों को छोड़ दिया है और अब प्रतिक्रिया के मुख्य भाग को देख रहे हैं (जो कि वेबपेज है)। क्लाइंट से जो वापस आता है वह डेटा की एक धारा है। हम अपनी खोज क्वेरी तक किसी भी चीज़ की परवाह नहीं करते हैं, इसलिए हम एक क्लाइंट करते हैं। ढूँढें। यदि इसे खोज क्वेरी मिलती है तो यह सही हो जाएगी और यह स्ट्रीम को क्वेरी के अंत में ले जाएगी। स्ट्रीम से उपलब्ध अगली चीज़ वह डेटा होगी जिसकी हम तलाश कर रहे हैं, लेकिन इस मामले में हम अनिश्चित हैं कि डेटा कितना लंबा होगा, लेकिन हम जानते हैं कि यह स्ट्रीम में हमारे वर्तमान स्थान और अगले उल्टे अल्पविराम के बीच की सभी जानकारी है।. हम इसे "client.readBytesUntil" का उपयोग करके प्राप्त कर सकते हैं, जो जो कहता है वह करता है, यह बाइट्स को एक बफर में पढ़ता है जब तक कि यह निर्दिष्ट क्वेरी को हिट नहीं करता। बस सुनिश्चित करें कि आप जिस बफर में पढ़ रहे हैं वह सभी डेटा को पकड़ने के लिए काफी बड़ा है, मुझे लगता है कि हम यहां 32 के साथ काफी सुरक्षित हैं!
यदि आपके पास आवश्यक सभी डेटा है, तो आपको अब डेटा पढ़ने की आवश्यकता नहीं है। मैंने यहां कनेक्शन बंद नहीं किया क्योंकि यह ESP8266 पर कोई समस्या पैदा नहीं करता था, ऐसा लगता है कि यह ESP32 के साथ समस्या पैदा करता है, इसलिए मैंने एक क्लाइंट जोड़ा। पूरी तरह से ईमानदार होने के लिए, मुझे यकीन नहीं है कि मैंने इसे विधि के शीर्ष पर क्यों रखा है, मुझे लगता है कि आपके पास वांछित डेटा होने के बाद इसे बंद करने के लिए और अधिक समझदारी होगी।
चरण 5: बाहरी सर्वर का उपयोग करके डेटा को स्क्रैप करना:
स्पर्श करने के लिए सिर्फ एक अन्य विषय, माइक्रो नियंत्रक की तुलना में NodeJS जैसे नियमित कंप्यूटर आधारित वातावरण पर पार्स करने के लिए बहुत बेहतर उपकरण हैं, इसलिए कभी-कभी यह एक ऐसी सेवा बनाने के लिए समझ में आता है जो एक वेबपेज से डेटा प्राप्त करती है और एक सरल प्रदान करती है आपके ESP8266 या ESP32 के लिए समापन बिंदु। इसका एक उदाहरण क्राउडसप्लाई पेज को स्क्रैप कर रहा था ताकि यह पता लगाया जा सके कि कितने TinyPICO बेचे गए थे। इसे सीधे ESP8266 या ESP32 पर प्राप्त करना संभव हो सकता है, लेकिन चूंकि यह कई अलग-अलग तत्वों पर कई अलग-अलग डेटा बिंदुओं को पार्स कर रहा था, इसलिए यह जटिल होता।
मैंने एक NodeJS प्रोजेक्ट बनाना समाप्त किया और चीयरियो नामक लाइब्रेरी का उपयोग करके डेटा को पार्स किया और इसने बहुत अच्छा काम किया। मैंने इस प्रोजेक्ट को क्लाउड सर्वर पर होस्ट किया है जो मेरे पास पहले से था, लेकिन आप इस तरह के प्रोजेक्ट को पीआई पर चला सकते हैं यदि आपके पास ऐसा सेटअप नहीं है।
चरण 6: उपयोग की सीमाएं
एक चीज जो इन सभी दृष्टिकोणों को संभावित रूप से प्रभावित कर सकती है, वह है साइटों की उपयोग की सीमा का उल्लंघन। नियमित एपीआई में यह आमतौर पर बहुत अच्छी तरह से प्रलेखित होता है कि आप प्रति मिनट या प्रति दिन कितने अनुरोध कर सकते हैं और आप इसके आधार पर अपने प्रोजेक्ट अनुरोधों को सीमित कर सकते हैं। जब आप स्क्रैप कर रहे होते हैं, तो आप नहीं जानते कि ये सीमाएं क्या हैं, इसलिए आप उन्हें मारने और संभावित रूप से अवरुद्ध होने का जोखिम उठाते हैं। मैं इसे सीमित करने के बारे में कोई सटीक सलाह नहीं दे सकता, इसलिए आप उनकी अच्छी किताबों में बने रहें, लेकिन मुझे लगता है कि किकस्टार्टर जैसे मामलों के अलावा, हर मिनट के तहत कुछ भी अक्सर होगा, जहां वे हर कुछ सेकंड में अनुरोध करते हैं।
चरण 7: पढ़ने के लिए धन्यवाद
उम्मीद है कि अगर आप अपने ESP8266 या ESP32 पर वेबपेजों से सीधे डेटा पार्स करने में रुचि रखते हैं तो इस वीडियो ने मदद की है। क्या आपके पास उस विषय पर कोई अन्य प्रश्न हैं जिसे मैंने कवर नहीं किया है? कृपया मुझे नीचे दी गई टिप्पणियों में बताएं, या मेरे साथ और मेरे डिस्कॉर्ड सर्वर पर अन्य निर्माताओं के एक समूह में शामिल हों, जहां हम इस विषय या आपके किसी अन्य निर्माता से संबंधित चर्चा कर सकते हैं, लोग वास्तव में वहां मददगार हैं इसलिए यह हैंग होने के लिए एक शानदार जगह है बाहर
मैं अपने जीथब प्रायोजकों को भी बहुत-बहुत धन्यवाद देना चाहता हूं जो मैं जो करता हूं उसका समर्थन करने में मदद करता हूं, मैं वास्तव में इसकी सराहना करता हूं। यदि आप नहीं जानते हैं, तो जीथब पहले वर्ष के लिए प्रायोजन का मिलान कर रहा है, इसलिए यदि आप प्रायोजन बनाते हैं तो वे अगले कुछ महीनों के लिए इसका 100% मिलान करेंगे।
पढ़ने के लिए धन्यवाद!
सिफारिश की:
Arduino UNO और SD-Card के साथ आर्द्रता और तापमान रीयल टाइम डेटा रिकॉर्डर कैसे बनाएं - प्रोटीन में DHT11 डेटा-लॉगर सिमुलेशन: 5 चरण
Arduino UNO और SD-Card के साथ आर्द्रता और तापमान रीयल टाइम डेटा रिकॉर्डर कैसे बनाएं | प्रोटीन में DHT11 डेटा-लॉगर सिमुलेशन: परिचय: नमस्ते, यह लियोनो मेकर है, यहां YouTube लिंक है। हम Arduino के साथ रचनात्मक प्रोजेक्ट बना रहे हैं और एम्बेडेड सिस्टम पर काम कर रहे हैं। डेटा-लॉगर: डेटा लॉगर (डेटा-लॉगर या डेटा रिकॉर्डर भी) एक इलेक्ट्रॉनिक डिवाइस है जो समय के साथ डेटा रिकॉर्ड करता है
एसएमडी सोल्डरिंग प्रैक्टिस किट, या मैंने कैसे चिंता करना बंद करना और सस्ते चीनी किट से प्यार करना सीखा: 6 कदम
एसएमडी सोल्डरिंग प्रैक्टिस किट, या हाउ आई लर्न टू स्टॉप वरींगिंग एंड लव द चीप चाइनीज किट: यह सोल्डरिंग के बारे में निर्देश योग्य नहीं है। यह एक निर्देश योग्य है कि कैसे एक सस्ते चीनी किट का निर्माण किया जाए। कहावत यह है कि आप जो भुगतान करते हैं वह आपको मिलता है, और यहां आपको वही मिलता है: खराब दस्तावेज। संदिग्ध भाग की गुणवत्ता। कोई समर्थन नहीं।तो क्यों खरीदें
ESP32 के साथ शुरुआत करना - Arduino IDE में ESP32 बोर्ड स्थापित करना - ESP32 ब्लिंक कोड: 3 चरण
ESP32 के साथ शुरुआत करना | Arduino IDE में ESP32 बोर्ड स्थापित करना | ESP32 ब्लिंक कोड: इस निर्देश में हम देखेंगे कि esp32 के साथ काम करना कैसे शुरू करें और Arduino IDE में esp32 बोर्ड कैसे स्थापित करें और हम arduino ide का उपयोग करके ब्लिंक कोड चलाने के लिए esp 32 प्रोग्राम करेंगे।
रास्पबेरी पाई 3 बी में एचडीएमआई के बिना रास्पियन स्थापित करना - रास्पबेरी पाई 3बी के साथ शुरुआत करना - अपना रास्पबेरी पाई सेट करना 3: 6 कदम
रास्पबेरी पाई 3 बी में एचडीएमआई के बिना रास्पियन स्थापित करना | रास्पबेरी पाई 3बी के साथ शुरुआत करना | अपना रास्पबेरी पाई 3 सेट करना: जैसा कि आप में से कुछ लोग जानते हैं कि रास्पबेरी पाई कंप्यूटर काफी शानदार हैं और आप पूरे कंप्यूटर को सिर्फ एक छोटे बोर्ड पर प्राप्त कर सकते हैं। रास्पबेरी पाई 3 मॉडल बी में क्वाड-कोर 64-बिट एआरएम कोर्टेक्स ए 53 है। 1.2 गीगाहर्ट्ज़ पर क्लॉक किया गया। यह पाई 3 को लगभग 50
UbiDots- एक ESP32 कनेक्ट करना और एकाधिक सेंसर डेटा प्रकाशित करना: 6 चरण
UbiDots- एक ESP32 को जोड़ना और एकाधिक सेंसर डेटा प्रकाशित करना: ESP32 और ESP 8266 IoT के क्षेत्र में बहुत परिचित SoC हैं। ये IoT प्रोजेक्ट्स के लिए एक तरह के वरदान हैं। ईएसपी 32 एकीकृत वाईफाई और बीएलई वाला एक उपकरण है। बस अपना एसएसआईडी, पासवर्ड और आईपी कॉन्फ़िगरेशन दें और चीजों को इसमें एकीकृत करें